Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [jquery] wolne działanie z livequery
Forum PHP.pl > Forum > Po stronie przeglądarki
tomek_swat
Witam,
Używam prostej funkcji do ładowania treści strony w miejsce zdefiniowanego kontenera:
  1. <?php
  2. function loadContent(id) {
  3.            $("#content").load("controller.php?module="+id+"");
  4.        }
  5. ?>

tak załączona strona korzysta z pluginów do jquery, są to jeditable i tablesorter aby to działało ze względu na to, że strona ładowana jest z użyciem ajaxowej funkcji load(), dołączam jeszcze dodatek livequery, krótki przykład
  1. <?php
  2. $('th.header').livequery(function() {
  3.      
  4.       $(function(){
  5.        
  6.          $(".tablesorter").tablesorter({widgets: ['zebra']})                          
  7.  });
  8.      
  9. });
  10.  
  11. $('table').livequery(function() {
  12.      
  13.       $(function(){
  14.        
  15.          $(".tablesorter").tablesorterPager({container: $("#pager")})                        
  16.  });
  17.      
  18. });
  19. // KURIER EDIT
  20. $('.editNewsletter').livequery(function() {
  21.      
  22.       $(function() {
  23.        
  24.          $(".editNewsletter").editable("../../libs/actions/Update.php?module=newsletter", {
  25.      indicator : "<img src='img/indicator.gif'>",
  26.      type   : "autogrow",
  27.      onblur : 'submit',
  28.      select : true,
  29.      submit : 'Zapisz zmiany',
  30.      cancel : 'Anuluj',
  31.      autogrow : {
  32.          lineHeight : 12,
  33.          maxHeight : 512
  34.      },
  35.      tooltip : 'Kliknij by edytować newsletter'
  36.  });
  37.  });
  38.      
  39. });
  40. // KURIER EDIT
  41. ?>

wyświetla poprostu tablę, której wiersze można edytować gdy się na nie kliknie, wszystko działa bardzo dobrze i tak jak bym tego oczekiwał pod warunkiem, że strona nie jest ładowana przez load(), gdy ją załaduję w ten sposób długo się ładuje i przy 10 rekordach pobranych z bazy potrafi zawiesić przeglądarkę, proszę o jakieś wskazówki gdyż wszelkie próby naprawy tego nie przynoszą efektu, wydaję mi się, że chodzi o odpowiednie zastosowanie live query?
pzdr
lord_t
Takie pytanie: czemu w livequery masz funkcję, w której wpisujesz się do zdarzenia ready poprzez $(function(){})?

Przypuszczam, że poniższy kod też będzie działał jak Twój. Może pomoże rozwiązać Twój problem.
  1. <?php ?>
  2.  
  3. $('th.header').livequery(function() {       
  4.          $(".tablesorter").tablesorter({widgets: ['zebra']})                          
  5. });
  6.  
  7. $('table').livequery(function() {
  8.          $(".tablesorter").tablesorterPager({container: $("#pager")})                        
  9. });
  10.  
  11. $('.editNewsletter').livequery(function() {
  12.  
  13.          $(".editNewsletter").editable("../../libs/actions/Update.php?module=newsletter", {
  14.      indicator : "<img src='img/indicator.gif'>",
  15.      type   : "autogrow",
  16.      onblur : 'submit',
  17.      select : true,
  18.      submit : 'Zapisz zmiany',
  19.      cancel : 'Anuluj',
  20.      autogrow : {
  21.          lineHeight : 12,
  22.          maxHeight : 512
  23.      },
  24.      tooltip : 'Kliknij by edytować newsletter'
  25.  });
  26.      
  27. <?php ?>
tomek_swat
dzięki za radę, poprostu tak wyczytałem w dokumentacji, po Twoich modyfikacjach program również działa jednak na szybkości nie zyskał, może jakieś inne pomysły co kolwiek, wszystko sprawdzę
pzdr
lord_t
Spróbuj przetestować kod tak, żeby raz nie działał jeden plugin, a później drugi, może uda się dowiedzieć który zwalnia całość, a wtedy łatwiej będzie znaleźć błąd/niedopatrznie.
erix
Cytat
działa jednak na szybkości nie zyskał


W FireBugu masz profilera; wyłapiesz nim najwolniejsze kawałki kodu.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.