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

Оптимизация


             Неявным  бонусом  от  использования  «живых»  событий  можно  считать  возможность
             оптимизации, о «подходящих» случаях я и расскажу.


             Случай первый, банальный – представьте себе таблицу на тысячу строк да десяток столбцов,
             а теперь попытайтесь подсчитать, сколько памяти скушают обработчики события click для
             каждой ячейки? Вот-вот, стоит это переписать в один обработчик:


                    $('table').on('click', 'td', function() { /* ... */ }

             Случай  второй,  надуманный  –  нам  необходимо  логировать  действия  пользователя  на
             странице, т.е. отслеживать клики по бессчётному количеству объектов:

                    $('body').on('click', '*', function() {
                           console.info("Click on "+this.tagName);

                    });


             Пример работы данного «надуманного» варианта можно посмотреть на странице
             events.optimization.html



             Touch события


             Смартфоны  с  большим  сенсорным  экраном  —  это  уже  норма  жизни,  и  любому  web-

             разработчику  рано  или  поздно  потребуется  разрабатывать  интерфейсы  с  поддержкой
             «touch» событий. На этот случай в JavaScript'е предусмотрены следующие события:


                    touchstart — событие схоже с mousedown, происходит при касании пальцем экрана

                    touchend — убираем палец с экрана, ака mouseup

                    touchmove — водим пальцем по экрану — mousemove
                    touchcancel — странное событие, отмена touch до того, как палец был убран



             О том как с ними работать, можно подчерпнуть из статьи Touching and Gesturing on iPhone,
             Android,  and  More  (хоть  рассказ  там  и  о  Dojo  Toolkit).  Для  обработки  touch  событий  с
             использованием jQuery лучше всего использовать jQuery Mobile.










                                                                                                         50


                                                                                        www.trk.kg
   45   46   47   48   49   50   51   52   53   54   55