Задать вопрос

Pjax и несколько блоков — возможно ли?

Решил написать сайт только на Ajax-подгрузке контента. Сразу вспомнил про Pjax. О! Решение найдено - подумал я, но не тут-то было...

Не вижу профита менять Pjax'ом 95% контента (т. е. одного глобального блока #content в котором все содержимое сайта). Не нашел возможности Pjax'ом менять несколько блоков (вверху #header, в центре #div1 и #div2, в левой менюшке #ul4, в #footer блок #div101).
Написал свой тестовый Pjax. Передаю JSON с сервера. В нем структура и многое другое, что нужно менять. Логика простая... есть переменная JSON['body']['header'] - в меняю HTML у элемента с ID = header. Но тут дело дошло до скриптом! Тут у меня начинаются вопросы.
Я удаляю все скрипты со страницы путем $('#script_id').remove(). Подключаю новые. В подключенных новых скриптах (в новом наборе скриптов присутствуют и те же самые скрипты из старого набора), срабатывает событие document.ready. Самое то, ведь новые скрипты могут что-то "новое". Но навешиваются и повторные обработчики из стартового набора скриптов. Как? Я ведь удалил скрипты, функции там далеко не анонимные, но они продолжают работать, даже после удаление скрипта из DOM. Теперь даже получается, что мои ссылки стали 2 раза "ходить" за новым контентом, а потом и 3 раза...

Есть какие-нибудь идея для решения? Может как-то нужно иначе удалять или чистить "старые" события и скрипты?
  • Вопрос задан
  • 3338 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
agerasimov
@agerasimov Автор вопроса
Кто-нибудь слышал об SPF? Ютуб использует. Но проблема со скриптами все же остается актуальной.
Как же реализовать правильную замену старых скриптов на новый набор? Чтоб не было двойных событий и всяких конфликтов.
Ответ написан
Комментировать
@muxalich
PHP, ZEND, JS, PJAX, JQ, JQ UI, MySQL
Плагин pjax для jquery https://github.com/defunkt/jquery-pjax, сам пользуюсь будут вопросы пиши.
Обновляет только тот контейнер который ты указываешь. Отлично идет в купе с Zend, YII и др. framework
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы