抽象化は危険です
誰もがシンプルさが好きです。 複雑さは殺します。 それは作業を複雑にし、急な学習曲線につながります。 プログラマは、それがどのように機能するかを理解する必要があります。 複雑なシステムで作業する場合、「私はそれを使用する」と「それがどのように機能するかを知っている」との間に大きな距離があります。 たとえば、次のコードは複雑さを隠します。
var page = Framework.createPage({ 'type': 'home', 'visible': true });
これが本当のフレームワークだとしましょう。 createPageは、htmlテンプレートホームをロードする新しいViewクラスをどこかに作成します。 visibleパラメーターに基づいて、作成されたDOM要素をツリーに追加します。 開発者の観点からは、抽象化であるため、すべてがどのように詳細に機能するのかわかりません。
一部のフレームワークには1つではなく、多くの抽象化レベルがあります。 時々、彼の作品の詳細を知る必要があります。 抽象化は、機能のラッパーを作成し、設計上の決定をカプセル化するため、強力なツールです。 しかし、追跡が困難なプロセスにつながるため、賢明に使用する必要があります。
例を次のように変更した場合:
var page = Framework.createPage(); page .loadTemplate('home.html') .appendToDOM();
今、何が起こっているのかが明らかになります。 テンプレートのロードと添付は、APIメソッドとして示されます。 つまり、プロセスを理解して制御することができます。
Ember.jsを取得します。 フレームワークは素晴らしいです。 数行で、1ページのアプリケーションを作成できます。 しかし、価格があります。 彼は舞台裏でクラスを定義します。 例:
App.Router.map(function() { this.resource('posts', function() { this.route('new'); }); });
フレームワークは3つのパスを作成し、それぞれがコントローラーに接続されます。 それらは使用される場合も使用されない場合もありますが、使用されています。 フレームワークでは、それらが機能する必要があります。
多くの場合、プロジェクトには独自の機能が必要です。 すべての場合に設計されたフレームワークはありません。 そして、単純な解決策がないタスクに直面しています。 問題を解決する正しい方法を見つけるには、すべてがどのように機能するかを把握する必要があります。 多くの場合、私たちが行う必要があるのは、フレームワークをハッキングするようなものです。
たとえば、Backbone.jsにはいくつかの定義済みオブジェクトがあります。 それらは基本的な機能を持ち、その実装はプログラマーにかかっています。 DocumentViewクラスは、Backbone.Viewを拡張します。 それだけです。 コードとフレームワークのコア機能の間には1つのレベルしかありません。
var DocumentView = Backbone.View.extend({ 'tagName': 'li', 'events': { 'mouseover .title .date': 'showTooltip', 'click .open': 'render' }, 'render': function() { … }, 'showTooltip': function() { … } });
私は多くの抽象化レベルを持たないフレームワークが好きです-透明性が判明したものです。
消えたコンストラクター
一部のフレームワークは、クラス定義を受け入れますが、コンストラクターを作成しません。 フレームワーク自体が、オブジェクトをいつどこでインスタンス化するかを決定します。 私たちがこれを自分で行うことを可能にするフレームワークを見たいです。 たとえば、Knockoutの場合:
function ViewModel(first, last) { this.firstName = ko.observable(first); this.lastName = ko.observable(last); } ko.applyBindings(new ViewModel("", ""))
モデルを定義して初期化します。 AngularJSでは、状況は少し異なります。
function TodoCtrl($scope) { $scope.todos = [ { 'text': ' angular', 'done': true }, { 'text': ' angular', 'done': false } ]; }
クラスを定義しますが、実行しません。 これがコントローラーであり、フレームワークがそれをどのように操作するかを決定するだけです。 これは混乱する可能性があります アプリケーション内を移動できるようにするコードの重要なポイントを失います。
DOM操作
いずれにしても、DOMと対話する必要があります。 そして、これがどのように起こるかを正確に知る必要があります-通常、ページノードを使用するすべてのアクションは、再描画につながります。 たとえば、次のクラスを考えます。
var Framework = { 'el': null, 'setElement': function(el) { this.el = el; return this; }, 'update': function(list) { var str = '<ul>'; for (var i = 0; i < list.length; i++) { var li = document.createElement('li'); li.textContent = list[i]; str += li.outerHTML; } str += '</ul>'; this.el.innerHTML = str; return this; } }
このフレームワークは、指定されたデータから順序付けられていないリストを作成します。 リストを含むDOM要素を送信し、画面にデータを表示するupdateを呼び出します。
Framework .setElement(document.querySelector('.content')) .update(['JavaScript', '', '']);
結果は次のとおりです。
これがなぜ悪いのかを示します。 ページにリンクを追加し、イベントトラッキングを終了します。 この関数は、他のパラメーターを使用して既にupdateを呼び出します。
document.querySelector('a').addEventListener('click', function() { Framework.update(['', '', '']); });
非常に類似したデータを送信し、配列の最初の要素のみを変更します。 しかし、innerHTMLの使用により、リスト全体が毎回再描画されます。 OperaのDevToolsでこれを見てみましょう。
クリックするたびに、コンテンツ全体が再描画されます。 これは問題です。
ノードのみを使用した方が良いでしょう
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
-
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
..
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for. this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, ,.
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML-. HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
-
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
..
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for. this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, ,.
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML-. HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
-
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
..
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for. this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, ,.
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML-. HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.
. , . , – setElement:
setElement: function(el) { this.list = document.createElement('ul'); el.appendChild(this.list); return this; }
. .
, , update:
'update': function(list) { for (var i = 0; i < list.length; i++) { if (!this.rows[i]) { var row = document.createElement('LI'); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }
for . this.rows . , textContent. , , .
:
.
React DOM. . .
, .
DOM
JavaScript DOM. , . Backbone.js, :
var Navigation = Backbone.View.extend({ 'events': { 'click .header.menu': 'toggleMenu' }, 'toggleMenu': function() { // … } });
, .header.menu, , . , DOM. .menu. .main-menu, JS-. , , DOM.
, JS. – DOM, HTML.
AngularJS:
<a href="#" ng-click="go()"> </a>
go - , . DOM. HTML. DOM.
HTML. (HMTL) (JS). , . :
<div onclick="javascript:App.doSomething(this);"> </div>
, . :
<div data-component="slideshow" data-items="5" data-select="dispatch:selected"> … </div>
HTML, .
. . – . . , " ". , .
RequireJS – . , , :
require(['ajax', 'router'], function(ajax, router) { // … });
ajax router. require . router :
// router.js define(['jquery'], function($) { return { 'apiMethod': function() { // … } } });
– jQuery. , API – , , .
AngularJS factory (). , :
myModule.factory('greeter', function($window) { return { 'greet': function(text) { alert(text); } }; }); function MyController($scope, greeter) { $scope.sayHello = function() { greeter.greet(' !'); }; }
– require . .
. , . . , :
var router:<inject:Router>;
, . RequireJS AngularJS , , , .
HTML. ? .
<script type="text/x-handlebars"> Hello, <strong> </strong>! </script>
HTML, , .
Ajax
Backbone.View.extend({ 'template': 'my-view-template', 'render': function() { $.get('/templates/' + this.template + '.html', function(template) { var html = $(template).tmpl(); }); } });
HTML- . HTTP-, .
– DOM. HTML , HTTP-, .
JavaScript
var HelloMessage = React.createClass({ render: function() { // JS: return <div>, {this.props.name}</div>; } });
React, , .
-HTML
HTML. JSON YAML.
? . . HTML- . DOM. , .
AngularJS . . . – HTML, AngularJS . , Object.observe , .
. - , . , , , . , , YUI, . JS-, .
"". . – , . .
, . . , . , .
API
API , . . - , , :
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'addRoute': function(path) { var rData = router.resolve(path); var controller = factory.get(rData.controllerType); router.register(path, controller.handler); return controller; } } }; var AboutCtrl = Framework.addRoute('/about');
. , . URK, . , , URL? ? API.
:
var Framework = function() { var router = new Router(); var factory = new ControllerFactory(); return { 'createController': function(path) { var rData = router.resolve(path); return factory.get(rData.controllerType); } 'addRoute': function(path, handler) { router.register(path, handler); } } } var AboutCtrl = Framework.createController({ 'type': 'about' }); Framework.addRoute('/about', AboutCtrl.handler);
, – , . , . , - . API , , . , , . , , .
, , . . , - , . . , , .. – TDD.
, , . , . , – , .
. . Travis. , , .
c PHP, WordPress. – ? – . - . JS- – . , , .
. – , . . – .
:
. . , – . , – . API. . , , . . . , , , . , .
, . , JavaScript.