Клиентские js-компоненты                разные способы создания                Сергей Бережной                руководитель...
Что это?                2вторник, 31 июля 12 г.
вторник, 31 июля 12 г.
Что это?                — HTML                4вторник, 31 июля 12 г.
вторник, 31 июля 12 г.
Что это?                — HTML + JavaScript                6вторник, 31 июля 12 г.
вторник, 31 июля 12 г.
Что это?                — HTML + JavaScript                — история                8вторник, 31 июля 12 г.
вторник, 31 июля 12 г.
вторник, 31 июля 12 г.
Что это?                — JavaScript + HTML                — история + Яндекс                11вторник, 31 июля 12 г.
вторник, 31 июля 12 г.
Что это?                — JavaScript + HTML                — история + Яндекс + другие ребята                13вторник, 31...
вторник, 31 июля 12 г.
Что это?                — JavaScript + HTML                — история + Яндекс + другие ребята                — полная всео...
Что это?                — JavaScript + HTML                — история + Яндекс + другие ребята                — полная всео...
Для кого?                17вторник, 31 июля 12 г.
Для кого?                — разработчик, админ, тестировщик                18вторник, 31 июля 12 г.
Для кого?                — разработчик, админ, тестировщик                19вторник, 31 июля 12 г.
вторник, 31 июля 12 г.
Для кого?                — разработчик                — PHP, JavaScript, Ruby, Perl, Python                21вторник, 31 и...
Для кого?                — разработчик                — PHP, JavaScript, Ruby, Perl, Python                22вторник, 31 и...
Для кого?                — разработчик                — JavaScript                — на сервере, в браузере                ...
Для кого?                — разработчик                — JavaScript                — на сервере, в браузере                ...
Для кого?                — разработчик                — JavaScript                — в браузере                25вторник, 3...
вторник, 31 июля 12 г.
Old School                27вторник, 31 июля 12 г.
вторник, 31 июля 12 г.
вторник, 31 июля 12 г.
вторник, 31 июля 12 г.
вторник, 31 июля 12 г.
Old School                HTML                  <a                         href="http://passport.yandex.ru/..."           ...
Old School                HTML                  <div id="login-form" ... >                    ...                    <form...
Old School                JavaScript                  dom = document.getElementById                    ? true             ...
Old School                35вторник, 31 июля 12 г.
Old School                — плавная деградация без JavaScript                36вторник, 31 июля 12 г.
Old School                — плавная деградация без JavaScript                — глобальные переменные                37втор...
вторник, 31 июля 12 г.
Old School                — плавная деградация без JavaScript                — глобальные переменные                      ...
Old School                — плавная деградация без JavaScript                — глобальные переменные                      ...
Old School                — плавная деградация без JavaScript                — глобальные переменные                      ...
Old School                — плавная деградация без JavaScript                — глобальные переменные                — скри...
Old School                — плавная деградация без JavaScript                — глобальные переменные                — скри...
Начать JavaScript «сразу»                44вторник, 31 июля 12 г.
вторник, 31 июля 12 г.
Начать JavaScript «сразу»                — window onload                46вторник, 31 июля 12 г.
Начать JavaScript «сразу»                — window onload                — вызов скриптов после HTML                47вторн...
Начать JavaScript «сразу»                — window onload                — вызов скриптов после HTML                — domre...
Начать JavaScript «сразу»                — window onload                — вызов скриптов после HTML                — domre...
jQuery-плагины                50вторник, 31 июля 12 г.
вторник, 31 июля 12 г.
jQuery-плагины                docs.jquery.com/Plugins/Authoring                  $.fn.myPlugin = function() {             ...
jQuery-плагины                docs.jquery.com/Plugins/Authoring                  $.fn.myPlugin = function() {             ...
jQuery-плагины                docs.jquery.com/Plugins/Authoring                  $.fn.myPlugin = function() {             ...
jQuery-плагины                docs.jquery.com/Plugins/Authoring                — самостоятельно сохранять                 ...
jQuery-плагины                docs.jquery.com/Plugins/Authoring                — самостоятельно сохранять                 ...
jQuery-плагины                docs.jquery.com/Plugins/Authoring                — самостоятельно сохранять                 ...
jQuery-плагины                docs.jquery.com/Plugins/Authoring                — самостоятельно правильно                 ...
Описание отдельно,                использование отдельно                59вторник, 31 июля 12 г.
вторник, 31 июля 12 г.
вторник, 31 июля 12 г.
вторник, 31 июля 12 г.
Описание/использование                  $.fn.myPlugin = function() {                     // ...                  };       ...
Описание/использование                  $.fn.myPlugin = function() {                     // ...                  };       ...
Декларативный подход                65вторник, 31 июля 12 г.
вторник, 31 июля 12 г.
Декларативный подход                  <input name="login" value=""/>                67вторник, 31 июля 12 г.
Декларативный подход                  $.fn.myInput = function() {                     // ...                  };          ...
Декларативный подход                  <input name="login" value=""/>                  <input                    name="pass...
Декларативный подход                  $.fn.myInput = function() {                     // ...                  };          ...
Декларативный подход                  $.fn.myInput = function() { /*...*/ };                  $(input[name="login"]).myInp...
Декларативный подход                — HTML                — JS компонентов                — JS связанный с HTML           ...
Декларативный подход                — HTML                — JS компонентов                — JS связанный с HTML           ...
вторник, 31 июля 12 г.
Связь HTML и JS                75вторник, 31 июля 12 г.
вторник, 31 июля 12 г.
вторник, 31 июля 12 г.
Декларативный подход                Связь HTML и JS                  <input                    class="myInput"            ...
Декларативный подход                Связь HTML и JS                  $.fn.myInput = function() {                      // ....
Декларативный подход                Связь HTML и JS                  $.fn.myInput = function() { /* ... */ };             ...
change не работает                81вторник, 31 июля 12 г.
вторник, 31 июля 12 г.
Декларативный подход                Связь HTML и JS                  $.fn.myInput = function() {                      // ....
Декларативный подход                Связь HTML и JS: Параметры                84вторник, 31 июля 12 г.
Декларативный подход                Связь HTML и JS: Параметры                  <input                    class="myInput" ...
Декларативный подход                Связь HTML и JS: Параметры                  $.fn.myInput = function() {               ...
Декларативный подход                Связь HTML и JS: Параметры                  <input                    class="myInput" ...
Декларативный подход                Связь HTML и JS: Параметры                  $.fn.myInput = function() {               ...
Декларативный подход                Связь HTML и JS: Параметры                  <input                    class="myInput" ...
Декларативный подход                Связь HTML и JS: Параметры                  <input                    class="myInput" ...
Декларативный подход                Связь HTML и JS: Параметры                  <input                    class="myInput" ...
вторник, 31 июля 12 г.
Декларативный подход                Связь HTML и JS                  $(function() {                    $(.myInput).myInput...
Декларативный подход                Связь HTML и JS                  <input                    class="myInput js"         ...
Декларативный подход                Связь HTML и JS                  $(function() {                     $(.js).each(functi...
AJAX                и динамическая                инициализация                96вторник, 31 июля 12 г.
Динамическая инициализация                  $.ajax({                     url: ...,                     success: function(d...
Динамическая инициализация                  $.fn.myInit = function() {                     this.find(.js).each(function() ...
Динамическая инициализация                  $.ajax({                     url: ...,                     success: function(d...
вторник, 31 июля 12 г.
jQuery-плагины                docs.jquery.com/Plugins/Authoring                — самостоятельно правильно                 ...
Динамическая инициализация                  $.fn.myDestroy = function() {                     this.find(.js).each(function...
вторник, 31 июля 12 г.
Высокоуровневое API                104вторник, 31 июля 12 г.
вторник, 31 июля 12 г.
Высокоуровневое API                — jQuery UI                         http://wiki.jqueryui.com/w/page/12138135/Widget%20f...
Высокоуровневое API                jQuery UI                  $.widget(my.component, {                    _create: functio...
Высокоуровневое API                jQuery UI                  $.widget(ui.dialog, $.ui.dialog, {                    close:...
Высокоуровневое API                — jQuery UI                         wiki.jqueryui.com/w/page/12138135/Widget%20factory ...
Высокоуровневое API                i-bem.js                  BEM.DOM.decl(                    { block: my-dialog, baseBloc...
Итого                111вторник, 31 июля 12 г.
вторник, 31 июля 12 г.
Итого                Было                113вторник, 31 июля 12 г.
Итого                Было                — глобальные переменные и модульность                114вторник, 31 июля 12 г.
Итого                Было                — глобальные переменные и модульность                — инициализация + деактиваци...
Итого                Было                — глобальные переменные и модульность                — инициализация + деактиваци...
Итого                Было                — глобальные переменные и модульность                — инициализация + деактиваци...
Итого                Было                — глобальные переменные и модульность                — инициализация + деактиваци...
Итого                Не было                119вторник, 31 июля 12 г.
Итого                Не было                — зависимости: подгрузка и сборка                120вторник, 31 июля 12 г.
Итого                Не было                — зависимости: подгрузка и сборка                — сложные связи между компоне...
Итого                Не было                — зависимости: подгрузка и сборка                — сложные связи между компоне...
Итого                Не было                — зависимости: подгрузка и сборка                — сложные связи между компоне...
вторник, 31 июля 12 г.
Сергей Бережной                         руководитель отдела                         разработки поисковых интерфейсов      ...
Сложные связи                между компонентами                126вторник, 31 июля 12 г.
Upcoming SlideShare
Loading in …5
×

Сергей Бережной "Разные способы создания клиентских js-компонентов"

2,045 views

Published on

Какие есть варианты для программирования интерактивной функциональности в браузере. Доклад-обзор – от самых простых и древних техник с использованием «чистого» JavaScript до множества современных подходов в разных фреймворках.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,045
On SlideShare
0
From Embeds
0
Number of Embeds
1,429
Actions
Shares
0
Downloads
9
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Сергей Бережной "Разные способы создания клиентских js-компонентов"

  1. 1. Клиентские js-компоненты разные способы создания Сергей Бережной руководитель отдела разработки поисковых интерфейсов Я.Субботник, Москва, 28 июля 2012 года 1вторник, 31 июля 12 г.
  2. 2. Что это? 2вторник, 31 июля 12 г.
  3. 3. вторник, 31 июля 12 г.
  4. 4. Что это? — HTML 4вторник, 31 июля 12 г.
  5. 5. вторник, 31 июля 12 г.
  6. 6. Что это? — HTML + JavaScript 6вторник, 31 июля 12 г.
  7. 7. вторник, 31 июля 12 г.
  8. 8. Что это? — HTML + JavaScript — история 8вторник, 31 июля 12 г.
  9. 9. вторник, 31 июля 12 г.
  10. 10. вторник, 31 июля 12 г.
  11. 11. Что это? — JavaScript + HTML — история + Яндекс 11вторник, 31 июля 12 г.
  12. 12. вторник, 31 июля 12 г.
  13. 13. Что это? — JavaScript + HTML — история + Яндекс + другие ребята 13вторник, 31 июля 12 г.
  14. 14. вторник, 31 июля 12 г.
  15. 15. Что это? — JavaScript + HTML — история + Яндекс + другие ребята — полная всеобъемлющая энциклопедия 15вторник, 31 июля 12 г.
  16. 16. Что это? — JavaScript + HTML — история + Яндекс + другие ребята — полная всеобъемлющая энциклопедия 16вторник, 31 июля 12 г.
  17. 17. Для кого? 17вторник, 31 июля 12 г.
  18. 18. Для кого? — разработчик, админ, тестировщик 18вторник, 31 июля 12 г.
  19. 19. Для кого? — разработчик, админ, тестировщик 19вторник, 31 июля 12 г.
  20. 20. вторник, 31 июля 12 г.
  21. 21. Для кого? — разработчик — PHP, JavaScript, Ruby, Perl, Python 21вторник, 31 июля 12 г.
  22. 22. Для кого? — разработчик — PHP, JavaScript, Ruby, Perl, Python 22вторник, 31 июля 12 г.
  23. 23. Для кого? — разработчик — JavaScript — на сервере, в браузере 23вторник, 31 июля 12 г.
  24. 24. Для кого? — разработчик — JavaScript — на сервере, в браузере 24вторник, 31 июля 12 г.
  25. 25. Для кого? — разработчик — JavaScript — в браузере 25вторник, 31 июля 12 г.
  26. 26. вторник, 31 июля 12 г.
  27. 27. Old School 27вторник, 31 июля 12 г.
  28. 28. вторник, 31 июля 12 г.
  29. 29. вторник, 31 июля 12 г.
  30. 30. вторник, 31 июля 12 г.
  31. 31. вторник, 31 июля 12 г.
  32. 32. Old School HTML <a href="http://passport.yandex.ru/..." onclick="return showLogin()"> 32вторник, 31 июля 12 г.
  33. 33. Old School HTML <div id="login-form" ... > ... <form name="login" ... > ... </form> ... </div> 33вторник, 31 июля 12 г.
  34. 34. Old School JavaScript dom = document.getElementById ? true : false; function showLogin() { if (dom && document.forms[login]) { document.getElementById(login-form) .style.display = block; return false; } else return true; } 34вторник, 31 июля 12 г.
  35. 35. Old School 35вторник, 31 июля 12 г.
  36. 36. Old School — плавная деградация без JavaScript 36вторник, 31 июля 12 г.
  37. 37. Old School — плавная деградация без JavaScript — глобальные переменные 37вторник, 31 июля 12 г.
  38. 38. вторник, 31 июля 12 г.
  39. 39. Old School — плавная деградация без JavaScript — глобальные переменные — showLogin() 39вторник, 31 июля 12 г.
  40. 40. Old School — плавная деградация без JavaScript — глобальные переменные — showLogin() — <form name="login"> 40вторник, 31 июля 12 г.
  41. 41. Old School — плавная деградация без JavaScript — глобальные переменные — showLogin() — <form name="login"> — <div id="login-form"> 41вторник, 31 июля 12 г.
  42. 42. Old School — плавная деградация без JavaScript — глобальные переменные — скрипты в <head> 42вторник, 31 июля 12 г.
  43. 43. Old School — плавная деградация без JavaScript — глобальные переменные — скрипты в <head> — JavaScript начинает работу только от пользовательских действий 43вторник, 31 июля 12 г.
  44. 44. Начать JavaScript «сразу» 44вторник, 31 июля 12 г.
  45. 45. вторник, 31 июля 12 г.
  46. 46. Начать JavaScript «сразу» — window onload 46вторник, 31 июля 12 г.
  47. 47. Начать JavaScript «сразу» — window onload — вызов скриптов после HTML 47вторник, 31 июля 12 г.
  48. 48. Начать JavaScript «сразу» — window onload — вызов скриптов после HTML — domready 48вторник, 31 июля 12 г.
  49. 49. Начать JavaScript «сразу» — window onload — вызов скриптов после HTML — domready function r(f) { /in/.test(document.readyState) ? setTimeout(r( + f + ), 9) : f() } // http://www.dustindiaz.com/smallest-domready-ever/ 49вторник, 31 июля 12 г.
  50. 50. jQuery-плагины 50вторник, 31 июля 12 г.
  51. 51. вторник, 31 июля 12 г.
  52. 52. jQuery-плагины docs.jquery.com/Plugins/Authoring $.fn.myPlugin = function() { ... }; 52вторник, 31 июля 12 г.
  53. 53. jQuery-плагины docs.jquery.com/Plugins/Authoring $.fn.myPlugin = function() { this.fadeIn( normal, function() { ... }); }; 53вторник, 31 июля 12 г.
  54. 54. jQuery-плагины docs.jquery.com/Plugins/Authoring $.fn.myPlugin = function() { this.fadeIn( normal, function() { ... }); }; $(#element).myPlugin(); 54вторник, 31 июля 12 г.
  55. 55. jQuery-плагины docs.jquery.com/Plugins/Authoring — самостоятельно сохранять инициализированный js-объект в .data(myPlugin) 55вторник, 31 июля 12 г.
  56. 56. jQuery-плагины docs.jquery.com/Plugins/Authoring — самостоятельно сохранять инициализированный js-объект в .data(myPlugin) $.fn.myPlugin = function() { return this.each(function() { var $this = $(this), data = $this.data(myPlugin); if (!data) { // init... $this.data(myPlugin, { /* ... */ }); } }}; 56вторник, 31 июля 12 г.
  57. 57. jQuery-плагины docs.jquery.com/Plugins/Authoring — самостоятельно сохранять инициализированный js-объект в .data(myPlugin) — самостоятельно правильно деактивировать контрол 57вторник, 31 июля 12 г.
  58. 58. jQuery-плагины docs.jquery.com/Plugins/Authoring — самостоятельно правильно деактивировать контрол $.fn.myPlugin = function() { return this.each(function() { var $this = $(this), data = $this.data(myPlugin); if (!data) { // init... $this.data(myPlugin, { destroy: function() { /* ... */ } }); } }}; 58вторник, 31 июля 12 г.
  59. 59. Описание отдельно, использование отдельно 59вторник, 31 июля 12 г.
  60. 60. вторник, 31 июля 12 г.
  61. 61. вторник, 31 июля 12 г.
  62. 62. вторник, 31 июля 12 г.
  63. 63. Описание/использование $.fn.myPlugin = function() { // ... }; $(#element).myPlugin(); 63вторник, 31 июля 12 г.
  64. 64. Описание/использование $.fn.myPlugin = function() { // ... }; $(#element).myPlugin({ // options... }); 64вторник, 31 июля 12 г.
  65. 65. Декларативный подход 65вторник, 31 июля 12 г.
  66. 66. вторник, 31 июля 12 г.
  67. 67. Декларативный подход <input name="login" value=""/> 67вторник, 31 июля 12 г.
  68. 68. Декларативный подход $.fn.myInput = function() { // ... }; $(input[name="login"]).myInput(); 68вторник, 31 июля 12 г.
  69. 69. Декларативный подход <input name="login" value=""/> <input name="password" type="password" value=""/> 69вторник, 31 июля 12 г.
  70. 70. Декларативный подход $.fn.myInput = function() { // ... }; $(input[name="login"]).myInput(); $(input[name="password"]).myInput(); 70вторник, 31 июля 12 г.
  71. 71. Декларативный подход $.fn.myInput = function() { /*...*/ }; $(input[name="login"]).myInput({ validator: login }); $(input[name="password"]).myInput({ validator: password }); 71вторник, 31 июля 12 г.
  72. 72. Декларативный подход — HTML — JS компонентов — JS связанный с HTML 72вторник, 31 июля 12 г.
  73. 73. Декларативный подход — HTML — JS компонентов — JS связанный с HTML 73вторник, 31 июля 12 г.
  74. 74. вторник, 31 июля 12 г.
  75. 75. Связь HTML и JS 75вторник, 31 июля 12 г.
  76. 76. вторник, 31 июля 12 г.
  77. 77. вторник, 31 июля 12 г.
  78. 78. Декларативный подход Связь HTML и JS <input class="myInput" name="login" value=""/> 78вторник, 31 июля 12 г.
  79. 79. Декларативный подход Связь HTML и JS $.fn.myInput = function() { // ... }; $(function() { $(.myInput).myInput() }); 79вторник, 31 июля 12 г.
  80. 80. Декларативный подход Связь HTML и JS $.fn.myInput = function() { /* ... */ }; $(function() { $(body).on(change, .myInput, function() { $(this).myInput() }) }); 80вторник, 31 июля 12 г.
  81. 81. change не работает 81вторник, 31 июля 12 г.
  82. 82. вторник, 31 июля 12 г.
  83. 83. Декларативный подход Связь HTML и JS $.fn.myInput = function() { // ... }; $(function() { $(.myInput).myInput() }); 83вторник, 31 июля 12 г.
  84. 84. Декларативный подход Связь HTML и JS: Параметры 84вторник, 31 июля 12 г.
  85. 85. Декларативный подход Связь HTML и JS: Параметры <input class="myInput" data-validator="login" name="login" value=""/> 85вторник, 31 июля 12 г.
  86. 86. Декларативный подход Связь HTML и JS: Параметры $.fn.myInput = function() { this.data(validator) === login }; 86вторник, 31 июля 12 г.
  87. 87. Декларативный подход Связь HTML и JS: Параметры <input class="myInput" onclick="return { validator: login }" name="login" value=""/> 87вторник, 31 июля 12 г.
  88. 88. Декларативный подход Связь HTML и JS: Параметры $.fn.myInput = function() { this[0].onclick().validator === login }; 88вторник, 31 июля 12 г.
  89. 89. Декларативный подход Связь HTML и JS: Параметры <input class="myInput" onclick="return { validator: { ... } }" name="login" value=""/> 89вторник, 31 июля 12 г.
  90. 90. Декларативный подход Связь HTML и JS: Параметры <input class="myInput" onclick="return { validator: function() { ... } }" name="login" value=""/> 90вторник, 31 июля 12 г.
  91. 91. Декларативный подход Связь HTML и JS: Параметры <input class="myInput" onclick="return { validator: require(validators).login }" name="login" value=""/> 91вторник, 31 июля 12 г.
  92. 92. вторник, 31 июля 12 г.
  93. 93. Декларативный подход Связь HTML и JS $(function() { $(.myInput).myInput(); $(.myButton).myButton(); $(.myBlabla).myBlabla(); }); 93вторник, 31 июля 12 г.
  94. 94. Декларативный подход Связь HTML и JS <input class="myInput js" data-component="myInput" data-validator="login" name="login" value=""/> 94вторник, 31 июля 12 г.
  95. 95. Декларативный подход Связь HTML и JS $(function() { $(.js).each(function() { var $this = $(this); $this[$this.data(component)](); }) }) 95вторник, 31 июля 12 г.
  96. 96. AJAX и динамическая инициализация 96вторник, 31 июля 12 г.
  97. 97. Динамическая инициализация $.ajax({ url: ..., success: function(data) { $(body).append(data) } }) 97вторник, 31 июля 12 г.
  98. 98. Динамическая инициализация $.fn.myInit = function() { this.find(.js).each(function() { var $this = $(this); $this[$this.data(component)](); }); return this; }) 98вторник, 31 июля 12 г.
  99. 99. Динамическая инициализация $.ajax({ url: ..., success: function(data) { $(data) .myInit() .appendTo(body) } }) 99вторник, 31 июля 12 г.
  100. 100. вторник, 31 июля 12 г.
  101. 101. jQuery-плагины docs.jquery.com/Plugins/Authoring — самостоятельно правильно деактивировать контрол $.fn.myPlugin = function() { return this.each(function() { var $this = $(this), data = $this.data(myPlugin); if (!data) { // init... $this.data(myPlugin, { destroy: function() { /* ... */ } }); } }}; 101вторник, 31 июля 12 г.
  102. 102. Динамическая инициализация $.fn.myDestroy = function() { this.find(.js).each(function() { var $this = $(this), name = $this.data(component); $this.data(name).destroy(); }); return this.remove(); }) 102вторник, 31 июля 12 г.
  103. 103. вторник, 31 июля 12 г.
  104. 104. Высокоуровневое API 104вторник, 31 июля 12 г.
  105. 105. вторник, 31 июля 12 г.
  106. 106. Высокоуровневое API — jQuery UI http://wiki.jqueryui.com/w/page/12138135/Widget%20factory 106вторник, 31 июля 12 г.
  107. 107. Высокоуровневое API jQuery UI $.widget(my.component, {   _create: function() { /* ... */ },   destroy: function() { /* ... */ }   myMethod: function() { /* ... */ }, }); 107вторник, 31 июля 12 г.
  108. 108. Высокоуровневое API jQuery UI $.widget(ui.dialog, $.ui.dialog, {   close: function() {     if(confirm(Close???)) {       this._super(close)     }   } }) 108вторник, 31 июля 12 г.
  109. 109. Высокоуровневое API — jQuery UI wiki.jqueryui.com/w/page/12138135/Widget%20factory — i-bem.js clubs.ya.ru/bem/posts.xml?tag=68697803 109вторник, 31 июля 12 г.
  110. 110. Высокоуровневое API i-bem.js BEM.DOM.decl( { block: my-dialog, baseBlock: dialog }, {    myMethod: function() { this.__base(); this.__self.myStaticMethod(); } }, { myStaticMethod: function() { /*...*/ } }); 110вторник, 31 июля 12 г.
  111. 111. Итого 111вторник, 31 июля 12 г.
  112. 112. вторник, 31 июля 12 г.
  113. 113. Итого Было 113вторник, 31 июля 12 г.
  114. 114. Итого Было — глобальные переменные и модульность 114вторник, 31 июля 12 г.
  115. 115. Итого Было — глобальные переменные и модульность — инициализация + деактивация 115вторник, 31 июля 12 г.
  116. 116. Итого Было — глобальные переменные и модульность — инициализация + деактивация — декларативный подход: связь html и js + проброс параметров 116вторник, 31 июля 12 г.
  117. 117. Итого Было — глобальные переменные и модульность — инициализация + деактивация — декларативный подход: связь html и js + проброс параметров — ajax и динамическая инициализация 117вторник, 31 июля 12 г.
  118. 118. Итого Было — глобальные переменные и модульность — инициализация + деактивация — декларативный подход: связь html и js + проброс параметров — ajax и динамическая инициализация — высокоуровневое API 118вторник, 31 июля 12 г.
  119. 119. Итого Не было 119вторник, 31 июля 12 г.
  120. 120. Итого Не было — зависимости: подгрузка и сборка 120вторник, 31 июля 12 г.
  121. 121. Итого Не было — зависимости: подгрузка и сборка — сложные связи между компонентами 121вторник, 31 июля 12 г.
  122. 122. Итого Не было — зависимости: подгрузка и сборка — сложные связи между компонентами — дата биндинги 122вторник, 31 июля 12 г.
  123. 123. Итого Не было — зависимости: подгрузка и сборка — сложные связи между компонентами — дата биндинги — … 123вторник, 31 июля 12 г.
  124. 124. вторник, 31 июля 12 г.
  125. 125. Сергей Бережной руководитель отдела разработки поисковых интерфейсов veged@yandex-team.ru github.com/veged @veged 125вторник, 31 июля 12 г.
  126. 126. Сложные связи между компонентами 126вторник, 31 июля 12 г.

×