![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| Leshak |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 143 Регистрация: 19.10.2005 Репутация: нет Всего: нет |
есть несколько исходных функций в которых выполняются Ajax-запросы, получение и обработка результата. как можно определить с помощью ли jQuery или как-то, что данные не только получены, но и обработаны, чтобы запустить следующие процедуры? |
|||
|
||||
| Samotnik |
|
|||
![]() Super star ! ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 7192 Регистрация: 4.11.2006 Где: Минск City Репутация: нет Всего: 191 |
|
|||
|
||||
| Leshak |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 143 Регистрация: 19.10.2005 Репутация: нет Всего: нет |
Samotnik,
или я не понял крутости ответа, или плохо объяснил проблему...
вот такая у меня проблема.. Это сообщение отредактировал(а) Leshak - 14.7.2009, 16:23 |
|||
|
||||
| Samotnik |
|
|||
![]() Super star ! ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 7192 Регистрация: 4.11.2006 Где: Минск City Репутация: нет Всего: 191 |
Leshak, не понимаю. Что нужно ?
Узнать когда функция отработала ? Продебаж |
|||
|
||||
| Leshak |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 143 Регистрация: 19.10.2005 Репутация: нет Всего: нет |
Samotnik,
угу.... значит забываю уже русский язык... попробую по другому: по этому адресу http://www.walks.ru/new.html лежит моя проблема дорога до нее следующая (выбираем эти пункты среди других) : [ Россия ][ Москва ][ Метро ][ Кольцевая линия ] - [ станция ’Киевская’ ] на станции ’Киевская’, после загрузки внизу страницы картинок с дополнительными видами этой станции, прокручиваем горизонтальный скрол вправо до конца и кликаем по последней картинке открывается информация о том, что тут можно пересесть с "Кольевой линии" на "Арбатско-покровскую линию" если посетитель выбирает пересадку - мне надо "загрузить" описание всего нового маршрута, обработать его, и только после этого создавать на "страничку" с информацией о той станции, на которой мы окажемся после пересадки. смотрим на пример выше:
а9 - обеспечивает "пересадку" а1 - загружает новый маршрут а8 - должна собрать описание конкретной станции, но а8 запускается не дожитаясь окончания процессов а1, а2, а3, а4 и поэтому а8 не получает данные, необходимые для ее работы... отсюда и возникает мой вопрос - как можно запустить а8 только после того, как отработают все нужные процессы? |
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 38 Всего: 386 |
Leshak, Сначала нужно четко себе представить, какую цепочку ajax-запросов и по каким действиям пользователя нужно сделать. У меня чего-то неполучилось
-------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| IDVsbruck |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 778 Регистрация: 12.11.2006 Репутация: 4 Всего: 22 |
Блин, те же яйца, только в профиль ... функция а8 будет исполняться ДО того, как а2 назначит переменную rj3. Лучше ту же а8 вызывать по получению ответа с сервера.
|
|||
|
||||
| Nigel |
|
|||
|
познаю мир ![]() ![]() Профиль Группа: Участник Сообщений: 515 Регистрация: 20.11.2007 Репутация: 1 Всего: 19 |
Leshak, зачем вам эти a1-19, rj1-rj9. Сами же потом и путаетесь. Через неделю вообще забудете, как и что делали. Пишите нормально и придет к вам понимание.
|
|||
|
||||
| Leshak |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 143 Регистрация: 19.10.2005 Репутация: нет Всего: нет |
ksnk, Nigel,
как, что и в каком порядке должно выполняться я себе хорошо представляю для того чтобы найти причину этой ошибки пришлось основательно переписать скрипт, избавиться от излишнего кода и сделать текст читабельней и короче. это только попытка объяснить свою проблемму, которая заключается в следующем - Ajax привел к тому, что программа исполняется не последовательно и возникают параллельные процессы. JavaScript позволяет отлавливать разные события (клики, фокусы, загрузки) - но возникла необходимость ожидать выполнение одних процессов, чтобы запускать следующие. На уровне ожидания XMLHttpRequest - это реализованно, а как быть с пользовательскими функциями? Угу - прощай структурное программирование, долой функции, вперед к линейному тексту и оператору GOTO ! :( неужели никто не решал подобную проблему? |
|||
|
||||
| ksnk |
|
||||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 38 Всего: 386 |
Кто знает какие рессурсы нужно для запуска такой-то функции? Если это знает сама функция, можно подвесить какой-нибудь цикл ожидания при вызове.
К примеру вот так может выглядеть функция, которая не ждет ничего особенного от жизни
Вот так - функция, которая для старта обязательно должна получить результат выполнения a1
А вот обработчик события при котором обязательно должны выполниться a1 и a8 onclick="a1();a8(); return false;" Это сообщение отредактировал(а) ksnk - 15.7.2009, 10:29 -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
||||
|
|||||
| Leshak |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 143 Регистрация: 19.10.2005 Репутация: нет Всего: нет |
ksnk,
О! а про рекурсию я и не подумал - наверно по причине того, что память и так расходуется неприлично и все еле шевелится... Это уже ВАРИАНТ! - спасибо! надо будет проверить - пока поставил заглушку в другую ветку и ищу глюки... :( |
|||
|
||||
| youri |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 17.4.2004 Репутация: нет Всего: 16 |
Leshak, а почему не вызвать a8 в конце a2? Если после a2 не обязательно должна выполняться a8 или может выполняться другая функция, то можно передавать a8 в a2 через параметр. Всякие таймеры, имхо, крайний случай
|
|||
|
||||
| Leshak |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 143 Регистрация: 19.10.2005 Репутация: нет Всего: нет |
youri,
так сейчас и делаю - при запуске а9 вывешиваю флажок с параметром, а по завершении а2 проверяю его и в зависимости от параметра запускаю или нет а8... но это не красиво :( ksnk, рекурсия с таймаутом работает как-то неустойчиво... да и выглядит кривова-то :( хотелось бы иметь инструмент типа $(function2() ).ready( function8() { /* ... */} ); по исполнению function2() выполнить function8() ... |
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 38 Всего: 386 |
Ну, тогда примерно вот так
Это сообщение отредактировал(а) ksnk - 20.7.2009, 19:38 -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| Leshak |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 143 Регистрация: 19.10.2005 Репутация: нет Всего: нет |
ksnk,
Ух-ты! Это уже высшая математика пошла - с ходу даже прочесть не смог.. :( буду разбираться по слогам! |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: Применение библиотек | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |