官术网_书友最值得收藏!

Chapter 1. Refreshing the UI Automatically with KnockoutJS

If you are reading this book, it is because you have discovered that managing web user interfaces is quite complex. DOM (short for Document Object Model) manipulation using only native JavaScript is very hard. This is because each browser has its own JavaScript implementation. To solve this problem, different DOM manipulation libraries have been born in the last few years. The library most frequently used to manipulate the DOM is jQuery.

It is increasingly common to find libraries that help developers to manage more and more features on the client side. As we have said, developers have obtained the possibility to manipulate the DOM easily and therefore to manage templates and format data. Also, these libraries provide developers with easy APIs to send and receive data from the server.

However, DOM manipulation libraries don't provide us with mechanisms to synchronize input data with the models in our code. We need to write code that catches user actions and updates our models.

When a problem occurs frequently in most projects, in almost all the cases, it can surely be solved in a similar way. It was then that libraries that manage the connection between the HTML files and JavaScript code began to appear. The pattern these libraries implement was named MV* (Model-View-Whatever). The asterisk can be changed by:

  • Controller, MVC (for example, AngularJS)
  • ViewModel, MVVM (for example, KnockoutJS)
  • Presenter (MVP) (for example, ASP.NET)

The library we are going to use in this book is Knockout. It uses view-models to bind data and HTML, so it uses the MVVM pattern to manage the data binding issue.

In this chapter, you will learn the basic concepts of this library and you will begin a task to use Knockout in a real project.

主站蜘蛛池模板: 郓城县| 商南县| 兴国县| 昌都县| 开远市| 临夏县| 临沧市| 永仁县| 贵港市| 齐河县| 潜山县| 库伦旗| 本溪| 金堂县| 五指山市| 银川市| 安岳县| 龙南县| 贵州省| 上高县| 岑巩县| 当阳市| 西藏| 云阳县| 前郭尔| 漳平市| 长子县| 黄梅县| 甘洛县| 卓尼县| 扎兰屯市| 茂名市| 哈密市| 宕昌县| 西宁市| 玛多县| 邯郸市| 库伦旗| 历史| 五指山市| 桑植县|