Page 87 - jQuery для начинающих
P. 87

Пример с уникальностью прост до безобразия:


                    var C = $.Callbacks("unique");
                    var func = function(msg) { console.log(msg+" first") };

                    C.add(func);
                    C.add(func);  // эта строка не повлияет на результат

                    C.fire("Go"); // только Go first


             Флаг stopOnFalse :


                    var C = $.Callbacks("stopOnFalse");
                    C.add(function(msg) {

                           console.log(msg+" first");
                           return false; // вот он – роковой false

                           });
                    C.add(function(msg) { console.log(msg+" second") });
                    C.fire("Go"); // только Go first



             Перечисленные флаги можно комбинировать и получать интересные результаты, а можно
             не получать, а лишь посмотреть на пример callbacks.html


                    Из  истории:  объект  Deferred  отпочковался  от  метода  ajax()  в  результате
                    рефакторинга версии 1.5. Шло время, появлялись новые версии jQuery, и вот новый
                    виток рефакторинга – результатом стало отделение Callbacks от Deferred в

                    версии  1.7,  таким  образом  в  текущей  версии  фреймворка  метод  ajax()
                    работает с объектом Deferred, который является надстройкой над Callbacks.
                    Дабы не вносить путаницу в терминологию, я использую определение «Deferred
                    Callbacks» и при работе с Callbacks, ибо колбэков много, и каждый раз уточнять,
                    что я говорю именно «о том самом» - дело достаточно утомительное.


             Статьи по данной теме:

                    —  «Что такое этот новый jQuery.Callbacks Object»
                       [http://habrahabr.ru/post/135821/]
                    —  «jQuery Deferred Object (подробное описание)»
                       [http://habrahabr.ru/post/113073/]
                    —  «Async JS: The Power of $.deffered»
                       [http://www.html5rocks.com/en/tutorials/async/deferred/]




                                                                                                         87


                                                                                        www.trk.kg
   82   83   84   85   86   87   88   89   90   91   92