Просмотр полной версии : Проблемы при использовании AJAX
При использовании расширений с формами, такие как "Гостевая книга", "Поиск" на сайте с AJAX'ом имеется следующая проблема.
После отправки содержимого формы при нажатии на кнопку "Submit" не получается на ходу засунуть содержимое новой сгенерированной страницы в нужный слой. При работе со ссылками просто меняю href на "#" и добавляю параметр onClick=getAJAX(...), а вот как быть с формами - там ведь после "Submit" выполняется функция обработки формы из расширения.
Подскажите, пожалуйста, как можно решить такую проблему?
С AJAX'ом связался из-за того, что для навигации используется дерево (расширение Foldout Menu), а оно (дерево) при большом количестве страниц на сайте генрится достаточно долго. Поэтому и решил перегружать только только часть страницы, чтоб дерево каждый раз не генерилось.
Может быть можно настроить расширение Foldout Menu, чтобы дерево не генерилось каждый раз при открытии новой страницы и не использовать AJAX? Тогда бы проблем было меньше :)
Вроде, точно так же можно перехватить через onSubmit = doAJAX();return false;
Хотя вообще логичней тогда уж и дерево строить на AJAX тоже.
Через onClick=getAJAX(...) на кнопке "Submit" тоже не получается - страница все также грузится на все окно без остальных слоев с интерфейсом, включая дерево. А если добавлять после "onClick" еще и "return false;", то тсраница вообще не обновляется.
А что даст, если дерево тоже строить на AJAX? Не совсем понял.
Кстати, а как сделено в BackEnd TYPO3? На фреймах? Там ведь тоже не перегружается вся страница.
В 4.1b3 - уже на AJAX.
Prost, не на onClick у кнопки. А onSubmit у формы. Возвращая false, форма действительно не отправляется, но никто не мешает скрыть её и отправить через метод submit() формы.
Попробовал для гостевой книги у формы onsubmit="getAJAX ('index.php?id=ID_стр_гост_книги','ID_слоя'); return false" но данные не заносятся в гостевую книгу.
void, а для чего дерево тоже строить на AJAX?
Для того, чтобы не перезагружать страницу каждый раз при сворачивании-разворачивании узлов.
А что код не работает - это вполне логично)
А что код не работает - это вполне логично)
Подскажите, пожалуйста, как сделать код onsubmit рабочим.
Для того, чтобы не перезагружать страницу каждый раз при сворачивании-разворачивании узлов.
При сворачивании-разворачивании узлов перезагрузки страницы не происходит, презагрузка происходит только при переходе на другую страницу в дереве. И то, замедление в скорости загрузки становится заметным при большом количестве страниц в дереве - сейчас их около 200.
Основная задержка, я так думаю, связана с инициализацией дерева каждый раз при открытии новой страницы. Все вышеизложенное относится, конечно же, для случая без использования AJAX.
А можно ли сделать так, чтобы проинициализировать дерево один раз при загрузке сайта, хранить его где-то, а затем использовать при каждом переходе на новую страницу?
Pavel Antonov
05.02.2007, 14:37
Подскажите, пожалуйста, как сделать код onsubmit рабочим.
А разве onsubmit не работает? Мне кажется проблема в том что делается в функции вызываемой на onsubmit.
При сворачивании-разворачивании узлов перезагрузки страницы не происходит, презагрузка происходит только при переходе на другую страницу в дереве. И то, замедление в скорости загрузки становится заметным при большом количестве страниц в дереве - сейчас их около 200.
Основная задержка, я так думаю, связана с инициализацией дерева каждый раз при открытии новой страницы. Все вышеизложенное относится, конечно же, для случая без использования AJAX.
А можно ли сделать так, чтобы проинициализировать дерево один раз при загрузке сайта, хранить его где-то, а затем использовать при каждом переходе на новую страницу?
"Где-то" хранить не стоит. Варианта два:
Отказаться от перезагрузки страницы вообще. При выборе в дереве подгружать контент через AJAX. (Как делает Google Reader)
Не формировать все дерево сразу, а динамически по надобности. При разворачивании узла подгружать уровень ниже через AJAX.Я бы сделал и то и то... 200 узлов все так, зачем их ганять туда сюда.
Работает на vBulletin® версия 3.8.1. Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot