Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 05.02.2013, 11:36
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Serg_pnz,
Ну есть две идеи:
1. Память периодически чистица сама "мусорщиком", большие объекты удалять принудительно через delete
2. Создавать динамический пустой iframe и выполнять основные деяния в нём(засовываем скрипты и необходимый контент внутрь), удаляя или пересоздавая новый фрейм для новых повторных действий
ассинхронный обмен с iframe удобно вести через LocalStorage + cобытие(к примеру программный клик кнопки
Ответить с цитированием
  #12 (permalink)  
Старый 05.02.2013, 15:44
Аватар для Serg_pnz
Сам по себе
Отправить личное сообщение для Serg_pnz Посмотреть профиль Найти все сообщения от Serg_pnz
 
Регистрация: 09.06.2009
Сообщений: 963

Deff,
у меня при переходе по локациям контент внутри окна постоянно перезаписывается (подгружается динамически с полной заменой содержимого), правильно ли я думаю, что прежде, чем динамически подгрузить новый скрипт (и контент), надо найти все текущие элементы в контейнере и снести с них обработчики?
Ответить с цитированием
  #13 (permalink)  
Старый 05.02.2013, 17:40
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от Serg_pnz
у меня при переходе по локациям контент внутри окна постоянно перезаписывается (подгружается динамически с полной заменой содержимого), правильно ли я думаю, что прежде, чем динамически подгрузить новый скрипт (и контент), надо найти все текущие элементы в контейнере и снести с них обработчики?
Ну ежели ты удаляешь контент, обработчики ( не live) удаляются вместе с ним... ?
Ответить с цитированием
  #14 (permalink)  
Старый 05.02.2013, 18:03
Аватар для Serg_pnz
Сам по себе
Отправить личное сообщение для Serg_pnz Посмотреть профиль Найти все сообщения от Serg_pnz
 
Регистрация: 09.06.2009
Сообщений: 963

Обработчики именно live ставлю, точнее
$(this).off().on()


А контент меняю
$('#globDIV').html(newcontent)


newcontent прилетает либо с json (тут расспихиваю контент, ставлю им обработчики), либо load (если скрипт заранее известен)
Ответить с цитированием
  #15 (permalink)  
Старый 05.02.2013, 18:33
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от Serg_pnz
тут расспихиваю контент, ставлю им обработчики)
Ню всё достаточно логично, наверно оставшаяся отладка в процессе завершения...

В принципе, я редко пользую новейшие библиотеки jQuery(нет доступа к движку) и работаю по старинке bind - ubind
Хотя имхо проще при переподгружаемом контенте и для автоудалении обработчика ставить типовые типо
$("Button").click(function () {

При изъятии или замене объекта даже на с тем же самым cелектором - обработчик автоудалится с изъятых и новых элементов с данным селектором
Вообщем такие вот варианты вместе с Вашими

Последний раз редактировалось Deff, 05.02.2013 в 18:49.
Ответить с цитированием
  #16 (permalink)  
Старый 05.02.2013, 18:47
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от Serg_pnz
(подгружается динамически с полной заменой содержимого),
body.innerHTML = body.innerHTML удаляет обработчики( не live(или даже и live - забыл), Да, - нун тестировать скорость перерисовки body для конкретики, *у меня проекты текстовые с легкой графикой) - если я правильно понял высказывание про "с полной заменой "- то возможно можно сократить операции

Последний раз редактировалось Deff, 05.02.2013 в 18:52.
Ответить с цитированием
  #17 (permalink)  
Старый 05.02.2013, 18:52
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от Deff Посмотреть сообщение
body.innerHTML = body.innerHTML удаляет обработчики( не live(или даже и live - забыл) - если я правильно понял высказывание про "с полной заменой "- то возможно можно сократить операции

Да, - нун тестировать скорость перерисовки body для конкретики, *у меня проекты текстовые с легкой графикой)
Ответить с цитированием
  #18 (permalink)  
Старый 05.02.2013, 20:35
Аватар для Serg_pnz
Сам по себе
Отправить личное сообщение для Serg_pnz Посмотреть профиль Найти все сообщения от Serg_pnz
 
Регистрация: 09.06.2009
Сообщений: 963

Deff,
спасибо, спасибо, спасибо! Ну а плюсик "вобла" не дает поставить))

Я ж пишу за хобби, возможно скоро представлю игрушку в карты, но именно как самому хотелось: никаких перезагрузок, всё "по-правильному".
Ответить с цитированием
  #19 (permalink)  
Старый 07.02.2013, 11:02
Аватар для Serg_pnz
Сам по себе
Отправить личное сообщение для Serg_pnz Посмотреть профиль Найти все сообщения от Serg_pnz
 
Регистрация: 09.06.2009
Сообщений: 963

И еще один способ стоит упомянуть - загрузить и сразу выполнить
$.getScript('js/room.js');
Ответить с цитированием
  #20 (permalink)  
Старый 07.02.2013, 12:50
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Serg_pnz,
Ну без jQuery ранее, практически вызов всех обработчиков ставили в тег
А функция одна для всех Аякс подгрузок тегов с данным вызовом.
Сейчас часто впихивают контент скрипта в скрытый теxtаrеа на подгружаемой странице, затем создают новый элемент script и перезаписыват в body, предварительно всунув контент. (Обычно фунцией с именем и автозапуском, чтобы легко её удалить после отработки

Последний раз редактировалось Deff, 07.02.2013 в 13:01.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск