|
|
|
jQuery, последовательное обращение
|
|||
|---|---|---|---|
|
#18+
Ситуация проста. Нужно выполнить несколько последовательных запросов к серверу используя jQuery. Содержание каждого последующего запроса зависит от предыдущего. Т.е. смысл в следующем: первый запрос вернул ответ, в нем некие данные, используя их генерим второй запрос. Можно второй запрос генерить в обработчике первого ответа. Сие не слишком удобно, поскольку возникают вложенные структуры кода. Тогда можно придумать так. Есть некий глобальный объект, который отражает состояние дел на странице. Ответ любого запроса может его изменять. Тогда можно выстроить код линейно. Однако запросы к серверу выполняются асинхронно. Как можно отключить асинхронность запросов jQuery? Такое смутное ощущение, что где-то в документации я читал об этом, но что и где... не найду ни как. Быть может есть у кого другие решения на эту тему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2009, 14:58 |
|
||
|
jQuery, последовательное обращение
|
|||
|---|---|---|---|
|
#18+
Ни в коем случае не надо делать синхронные запросы - это полная глупость! На это время клиентский браузер просто "замирает" - это неправильный подход. Нет ничего страшного в каскадном вызове функций, делающих запросы на сервер. Более того, можно использовать некие глобальные переменные, которые обеспечат безпроблемный рекурсивный вызов такой функции. Могу посоветовать также еще один способ. Возможно, в твоем случае он не очень удобен, но при динамическом изменении страниц практически незаменим: подгружать контент, в котором будет скрипт вызова следующего контента. Конечно, чисто для данных может не подойти, но для кода самое оно. Хотя и для данных также может использоваться - без html-разметки только со скриптом, который переопределяет глобальную переменную с данными и вызывает новый запрос на сервер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2009, 16:09 |
|
||
|
jQuery, последовательное обращение
|
|||
|---|---|---|---|
|
#18+
Ну а все же. Если забыть про то, что IDVsbruckсинхронные запросы - это полная глупость! как заставить функцию выполняться синхронно? даже если при этом IDVsbruckклиентский браузер просто "замирает" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2009, 22:25 |
|
||
|
jQuery, последовательное обращение
|
|||
|---|---|---|---|
|
#18+
Воспользоваться функцией jQuery.ajax() с параметром async:false. Но это гораздо менее удобно, чем "вложенные структуры кода". Также при ошибке на сервере и невозврате ответа браузер может повиснуть основательно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2009, 23:10 |
|
||
|
|

start [/forum/search_topic.php?author=Kritikator-pro&author_mode=last_topics&do_search=1]: |
0ms |
get settings: |
11ms |
get forum list: |
18ms |
get settings: |
9ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
186ms |
get topic data: |
12ms |
get first new msg: |
6ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
| others: | 656ms |
| total: | 985ms |

| 0 / 0 |
