Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: презагрузка dom после ajax

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
netwixell
Отправлено: 24 Сентября, 2013 - 22:22:35
Post Id


Частый гость


Покинул форум
Сообщений всего: 219
Дата рег-ции: Апр. 2012  


Помог: 1 раз(а)

[+]


Cтолкнулся с такой проблеммой, что те ссылки которые вставлены в результате ajax запроса не откликаются на обработчик событий. Подскажите еcли знаете решение или адекватный пост на эту тему.


CODE (javascript):
скопировать код в буфер обмена
  1. function go_to(){
  2. $('a').bind('click', function(event){
  3. if(this.href == ''){
  4. } else {
  5. ajax(this.href, 1);
  6. }
  7. return false;
  8. });
  9. }


тоже самое будит и с popstate

CODE (javascript):
скопировать код в буфер обмена
  1. function popstate(){
  2. $(window).bind('popstate', function(event){
  3. ajax(location.href, 0);
  4. return false;
  5. });
  6. }

(Отредактировано автором: 24 Сентября, 2013 - 22:24:43)

 
 Top
SAD Модератор
Отправлено: 25 Сентября, 2013 - 00:34:07
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


Помог: 75 раз(а)




какая версия jquery?
 
 Top
LIME
Отправлено: 25 Сентября, 2013 - 05:36:15
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




http://jquery.page2page.ru/index.php5/On

(Отредактировано автором: 25 Сентября, 2013 - 09:13:46)

 
 Top
ALEN
Отправлено: 25 Сентября, 2013 - 09:01:49
Post Id



Участник


Покинул форум
Сообщений всего: 1459
Дата рег-ции: Авг. 2008  
Откуда: Крым


Помог: 11 раз(а)




Перезагрузка DOM в данном вопросе, черевата утечкой памяти, поскольку старые ссылки не удаляются из памяти до перезагрузки страницы, а в памяти образуется огромное количество дублей существующих объектов.
На пальцах,после перезагрузки страницы раз эдак 100 страница начинает тупить.

Для решения задачи, лучше использовать вызов функции через тот-же onClick

P.S. Кому интересно, покажу пример реализации с формами и с ссылками. В личку только skype пишите.

P.P.S. В конкретном случае не работает, т.к. после подзагрузки DOM, нужно повторно вешать события, в этом примере - попробуйте после подзагрузки вызывать go_to()

(Отредактировано автором: 25 Сентября, 2013 - 09:10:45)

 
 Top
LIME
Отправлено: 25 Сентября, 2013 - 09:29:58
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




.

(Отредактировано автором: 25 Сентября, 2013 - 09:33:21)

 
 Top
SAD Модератор
Отправлено: 25 Сентября, 2013 - 11:24:47
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


Помог: 75 раз(а)




если в вашей версии есть .on(), то можно сделать так


CODE (javascript):
скопировать код в буфер обмена
  1. $(document.body).on('click', 'a', function(event){


или же как написал ALEN
 
 Top
tuareg
Отправлено: 25 Сентября, 2013 - 19:47:58
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


Помог: 69 раз(а)




ALEN пишет:
На пальцах,после перезагрузки страницы раз эдак 100 страница начинает тупить.

Было бы интересно посмотреть.(в личку написал) По поводу утечек. Если Вы вешаете события с помощью jQuery, то "убивать" их надо с помощью ее же.
Т.е не использовать el.innerHtml = '', а использовать типа $('').remove(); При удалении jQuery сама проверит.
 
 Top
ALEN
Отправлено: 26 Сентября, 2013 - 08:27:46
Post Id



Участник


Покинул форум
Сообщений всего: 1459
Дата рег-ции: Авг. 2008  
Откуда: Крым


Помог: 11 раз(а)




tuareg, на реальном деле, не все так сладко, удалив DOM объект, из памяти ссылка на него не удаляется, а при огромном количестве ссылок, которые нужно после каждой "подзагрузки" переопределять, происходит видимая утечка.
 
 Top
SAD Модератор
Отправлено: 26 Сентября, 2013 - 10:00:01
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


Помог: 75 раз(а)




на хабре буквально вчера была статья про утечки от Яндекса
 
 Top
tuareg
Отправлено: 27 Сентября, 2013 - 06:02:58
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


Помог: 69 раз(а)




Я просто оставлю http://learn[dot]javascript[dot]ru/memory-leaks
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB