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

Оптимизируем выборки


             Ну перво-наперво вам следует запомнить, что



                    результаты  поиска  не  кэшируются,  каждый  раз,  запрашивая  элементы  по
                    селектору, вы инициируете поиск элементов снова и снова


             Взглянув  на  алгоритм  работы  Sizzle,  сходу  напрашиваются  несколько  советов  об
             оптимизации по работе с выборками:



                1.  Сохранять результаты поиска (исходя из постулата выше):
                           // было
                           $("a.button").addClass("active");

                                  /* ... .*/
                           $("a.button").click(function(){ /* ... .*/ });


                           // стало
                           var $button = $("a.button");
                           $button.addClass("active");

                                  /* ... .*/
                           $button.click(function(){ /* ... .*/ });


                2.  Или использовать цепочки вызовов (что по сути аналогично первому правилу):

                           // было
                           $("a.button").addClass("active");
                           $("a.button").click(function(){ /* ... .*/ });


                           // стало
                           $("a.button").addClass("active")

                                          .click(function(){ /* ... .*/ });

                3.  Использовать context (это такой второй параметр при выборе по селектору):

                           // было
                           $(".content a.button");

                           // стало
                           $("a.button", ".content");
                           $(".content").find("a.button",); // чуток быстрее




                                                                                                         35


                                                                                        www.trk.kg
   30   31   32   33   34   35   36   37   38   39   40