Russian TYPO3 community Форум больше не используется. Присоединяйтесь к каналу #community-ru в Slack for TYPO3 community  

Вернуться   Russian TYPO3 community > Обсуждение общих технических вопросов > Общие вопросы

Ответ
 
Опции темы Опции просмотра
Старый 01.02.2007, 19:17   #1
Prost
Новенький
 
Регистрация: 11.01.2007
Адрес: Ukraine, Donetsk
Сообщений: 16
Отправить сообщение для Prost с помощью Skype™
По умолчанию Проблемы при использовании AJAX

При использовании расширений с формами, такие как "Гостевая книга", "Поиск" на сайте с AJAX'ом имеется следующая проблема.
После отправки содержимого формы при нажатии на кнопку "Submit" не получается на ходу засунуть содержимое новой сгенерированной страницы в нужный слой. При работе со ссылками просто меняю href на "#" и добавляю параметр onClick=getAJAX(...), а вот как быть с формами - там ведь после "Submit" выполняется функция обработки формы из расширения.

Подскажите, пожалуйста, как можно решить такую проблему?

С AJAX'ом связался из-за того, что для навигации используется дерево (расширение Foldout Menu), а оно (дерево) при большом количестве страниц на сайте генрится достаточно долго. Поэтому и решил перегружать только только часть страницы, чтоб дерево каждый раз не генерилось.

Может быть можно настроить расширение Foldout Menu, чтобы дерево не генерилось каждый раз при открытии новой страницы и не использовать AJAX? Тогда бы проблем было меньше
Prost вне форума   Ответить с цитированием
Старый 01.02.2007, 20:17   #2
void
Senior Member
 
Аватар для void
 
Регистрация: 14.03.2006
Адрес: Russia, Penza
Сообщений: 1,504
Отправить сообщение для void с помощью ICQ
По умолчанию

Вроде, точно так же можно перехватить через onSubmit = doAJAX();return false;
Хотя вообще логичней тогда уж и дерево строить на AJAX тоже.
__________________
TYPO3 FAQ
void вне форума   Ответить с цитированием
Старый 02.02.2007, 12:30   #3
Prost
Новенький
 
Регистрация: 11.01.2007
Адрес: Ukraine, Donetsk
Сообщений: 16
Отправить сообщение для Prost с помощью Skype™
По умолчанию

Через onClick=getAJAX(...) на кнопке "Submit" тоже не получается - страница все также грузится на все окно без остальных слоев с интерфейсом, включая дерево. А если добавлять после "onClick" еще и "return false;", то тсраница вообще не обновляется.

А что даст, если дерево тоже строить на AJAX? Не совсем понял.

Кстати, а как сделено в BackEnd TYPO3? На фреймах? Там ведь тоже не перегружается вся страница.
Prost вне форума   Ответить с цитированием
Старый 02.02.2007, 12:38   #4
PhilD
Senior Member
 
Регистрация: 10.03.2006
Адрес: Moscow, Russia
Сообщений: 429
Отправить сообщение для PhilD с помощью ICQ Отправить сообщение для PhilD с помощью Yahoo
По умолчанию

4.0 - на фреймах
PhilD вне форума   Ответить с цитированием
Старый 02.02.2007, 19:53   #5
void
Senior Member
 
Аватар для void
 
Регистрация: 14.03.2006
Адрес: Russia, Penza
Сообщений: 1,504
Отправить сообщение для void с помощью ICQ
По умолчанию

В 4.1b3 - уже на AJAX.

Prost, не на onClick у кнопки. А onSubmit у формы. Возвращая false, форма действительно не отправляется, но никто не мешает скрыть её и отправить через метод submit() формы.
__________________
TYPO3 FAQ
void вне форума   Ответить с цитированием
Старый 03.02.2007, 13:48   #6
Prost
Новенький
 
Регистрация: 11.01.2007
Адрес: Ukraine, Donetsk
Сообщений: 16
Отправить сообщение для Prost с помощью Skype™
По умолчанию

Попробовал для гостевой книги у формы onsubmit="getAJAX ('index.php?id=ID_стр_гост_книги','ID_слоя'); return false" но данные не заносятся в гостевую книгу.

void, а для чего дерево тоже строить на AJAX?
Prost вне форума   Ответить с цитированием
Старый 03.02.2007, 17:08   #7
void
Senior Member
 
Аватар для void
 
Регистрация: 14.03.2006
Адрес: Russia, Penza
Сообщений: 1,504
Отправить сообщение для void с помощью ICQ
По умолчанию

Для того, чтобы не перезагружать страницу каждый раз при сворачивании-разворачивании узлов.
А что код не работает - это вполне логично)
__________________
TYPO3 FAQ
void вне форума   Ответить с цитированием
Старый 04.02.2007, 18:00   #8
Prost
Новенький
 
Регистрация: 11.01.2007
Адрес: Ukraine, Donetsk
Сообщений: 16
Отправить сообщение для Prost с помощью Skype™
По умолчанию

Цитата:
Сообщение от void Посмотреть сообщение
А что код не работает - это вполне логично)
Подскажите, пожалуйста, как сделать код onsubmit рабочим.
Цитата:
Для того, чтобы не перезагружать страницу каждый раз при сворачивании-разворачивании узлов.
При сворачивании-разворачивании узлов перезагрузки страницы не происходит, презагрузка происходит только при переходе на другую страницу в дереве. И то, замедление в скорости загрузки становится заметным при большом количестве страниц в дереве - сейчас их около 200.
Основная задержка, я так думаю, связана с инициализацией дерева каждый раз при открытии новой страницы. Все вышеизложенное относится, конечно же, для случая без использования AJAX.
А можно ли сделать так, чтобы проинициализировать дерево один раз при загрузке сайта, хранить его где-то, а затем использовать при каждом переходе на новую страницу?
Prost вне форума   Ответить с цитированием
Старый 05.02.2007, 14:37   #9
Pavel Antonov
Senior Member
 
Аватар для Pavel Antonov
 
Регистрация: 01.10.2004
Адрес: Россия, Москва
Сообщений: 1,204
Отправить сообщение для Pavel Antonov с помощью ICQ
По умолчанию

Цитата:
Сообщение от Prost Посмотреть сообщение
Подскажите, пожалуйста, как сделать код onsubmit рабочим.
А разве onsubmit не работает? Мне кажется проблема в том что делается в функции вызываемой на onsubmit.

Цитата:
Сообщение от Prost Посмотреть сообщение
При сворачивании-разворачивании узлов перезагрузки страницы не происходит, презагрузка происходит только при переходе на другую страницу в дереве. И то, замедление в скорости загрузки становится заметным при большом количестве страниц в дереве - сейчас их около 200.
Основная задержка, я так думаю, связана с инициализацией дерева каждый раз при открытии новой страницы. Все вышеизложенное относится, конечно же, для случая без использования AJAX.
А можно ли сделать так, чтобы проинициализировать дерево один раз при загрузке сайта, хранить его где-то, а затем использовать при каждом переходе на новую страницу?

"Где-то" хранить не стоит. Варианта два:
  1. Отказаться от перезагрузки страницы вообще. При выборе в дереве подгружать контент через AJAX. (Как делает Google Reader)
  2. Не формировать все дерево сразу, а динамически по надобности. При разворачивании узла подгружать уровень ниже через AJAX.
Я бы сделал и то и то... 200 узлов все так, зачем их ганять туда сюда.
__________________
Павел Антонов
Rich Media Development Ltd.
Блог: http://codeline.richmd.ru/
Pavel Antonov вне форума   Ответить с цитированием
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB code is Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
utf8 - при сохранении урезает строку extreme Установка 5 27.08.2007 22:02
Проблемы при установке. EugeneM Установка 2 01.02.2007 19:24
tx_srfeuserregister+kb_md5pw+newloginbox - проблема при смене страны при регистрации Drizzt Do'Urden Общие вопросы 0 12.12.2006 19:19
вид урла в меню при использовании RealUrl demav Общие вопросы 2 16.08.2006 13:20
Проблемы с перекодировкой stoun Общие вопросы 4 02.11.2005 11:34


Часовой пояс GMT +4, время: 18:37.


Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot

Хостинг и техническая поддержка: TYPO3 Лаборатория