![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| Самозванка |
|
|||
![]() Девушка в стиле IT ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 484 Регистрация: 5.9.2006 Где: USA Репутация: нет Всего: 40 |
Сделала с помощью аякса, чтоб при изменение выбора в одном комбобоксе изменились данные во втором, во втором изменились в третим. Функциями changeSelect. но при первоначальной загрузке страницы, мне надо, чтобы все комбобоксы с определенными данными сразу подгрузились. Функция loadDropBox(). Ну естественно данные не успевают подгрузиться. Если ставлю между вызовами функций в функции loadDropBox() алерты, то данные за счет паузы подгружаться успевают. Как то можно избежать этого? Или первоначально без всяких аяксов просто загружать целиком страничку? Но тогда при вызове
changeSelectProductCategory тоже ситуация , когда надо два комбобокса подгружать, и тоже данные не успевают прийти, когда нет алертов.
|
|||
|
||||
| Veve |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 291 Регистрация: 1.1.2005 Где: Латвия, Рига Репутация: 1 Всего: 13 |
body onLoad
|
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 15 Всего: 315 |
либо window.onload = function() { start_function(); };
|
|||
|
||||
| Самозванка |
|
||||
![]() Девушка в стиле IT ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 484 Регистрация: 5.9.2006 Где: USA Репутация: нет Всего: 40 |
Да, да. Забыла написать, что функцию, так и вызываю.
Но в каждом из блоков вместо результата - Wait. А когда записываю так:
И немножко выжидаю перед нажатием на алерте ОК, то все данные приходят Это сообщение отредактировал(а) Самозванка - 20.12.2009, 13:20 |
||||
|
|||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 15 Всего: 315 |
нет, а какая проблема прописать вызов каждого следующего блока по завершению предыдущего?
sendRequest вызывать только по достижению результатов в sendRequestStart если это аякс, то там есть флаг readyState = 4, - приём данных. это ж вроде как само собой разумеющееся |
|||
|
||||
| Самозванка |
|
|||
![]() Девушка в стиле IT ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 484 Регистрация: 5.9.2006 Где: USA Репутация: нет Всего: 40 |
Так у меня же это и прописано выше:
То есть насколько я понимаю, следующая функция и должна вызываться, только после получения данных |
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 15 Всего: 315 |
вообще-то, у тебя написан её вызов сразу, а затем в ней уже проверка на состояние флага. этот ляп встречающийся с удивительной регулярностью в разных скриптах мне до сих пор не понятен.
флаг readyState должен быть прописан в самой аякс-функции, которая отправляет запрос на сервер:
|
|||
|
||||
| Itsys |
|
||||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1338 Регистрация: 21.1.2008 Где: г. Москва Репутация: 12 Всего: 34 |
Все дело в асинхронной обработке данных. Ты пытаешься послать запросы сразу друг за другом:
И второй запрос посылается тогда, когда ответ от первого еще не получен и данные еще не загружены. Сейчас каждый процесс идет параллельно:
Причем начинаются они практически одновременно, а длятся не менее 1-2 секунд в зависимости от скорости соединения. А надо сделать последовательную схему:
Соответственно вызов
надо перенести внутрь процедуры "getRequestStart" и т.д. Это сообщение отредактировал(а) Itsys - 21.12.2009, 07:38 |
||||||||
|
|||||||||
| Самозванка |
|
|||
![]() Девушка в стиле IT ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 484 Регистрация: 5.9.2006 Где: USA Репутация: нет Всего: 40 |
Itsys,
bars80080, спасибо Itsys, именно так и сделала, до самой дошло через 4 часа))) |
|||
|
||||
![]()
|
| Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |