Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 31.08.2009, 13:48
Аватар для Tim
Tim Tim вне форума
Профессор
Отправить личное сообщение для Tim Посмотреть профиль Найти все сообщения от Tim
 
Регистрация: 05.06.2009
Сообщений: 1,703

Ожидание завершения работы функции
Ситуация:

Есть две функции. 1-я устанавливает асинхронное соединение и вставляет переданный контент на страницу. 2-я функция ищет в этом контенте блоки с исходными кодами и организует подсветку синтаксиса. Проблема в том, что 2-я функция не ждёт завершения работы первой и пытается найти сырцы в ещё пустом узле. Проблему удаётся решить запуском 2-й функции с некоторой задержкой. На локальном сервере достаточно 50-100 мс. На веб сервере оно наверняка увеличиться.

Подскажите как можно убедиться что 1-я функция завершила работу.
Ответить с цитированием
  #2 (permalink)  
Старый 31.08.2009, 14:02
Аватар для JSprog
L
Отправить личное сообщение для JSprog Посмотреть профиль Найти все сообщения от JSprog
 
Регистрация: 16.08.2009
Сообщений: 416

Может соединить эти функции? и пусть подсветка будет в конце функции
__________________
Лови позитив
Ответить с цитированием
  #3 (permalink)  
Старый 31.08.2009, 14:16
Аватар для Tim
Tim Tim вне форума
Профессор
Отправить личное сообщение для Tim Посмотреть профиль Найти все сообщения от Tim
 
Регистрация: 05.06.2009
Сообщений: 1,703

Скорее всего так и придётся делать. Просто через 1-ю ф-ю я запускаю все свои Ajax запросы, она достаточно большая - придётся очень много всего править. Хотелось бы найти более гуманный способ.

Кстати, может подскажите почему такие противоестественные вещи вообще происходят? Просто параллельная обработка какая-то...

Последний раз редактировалось Tim, 31.08.2009 в 14:19.
Ответить с цитированием
  #4 (permalink)  
Старый 31.08.2009, 14:26
Аватар для JSprog
L
Отправить личное сообщение для JSprog Посмотреть профиль Найти все сообщения от JSprog
 
Регистрация: 16.08.2009
Сообщений: 416

Или попробуй повесить обе функции на события
__________________
Лови позитив
Ответить с цитированием
  #5 (permalink)  
Старый 31.08.2009, 14:39
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Для этого асинхронным функциям передается callback, который вызывается после завершения работы функции.
Ответить с цитированием
  #6 (permalink)  
Старый 31.08.2009, 15:09
Аватар для Tim
Tim Tim вне форума
Профессор
Отправить личное сообщение для Tim Посмотреть профиль Найти все сообщения от Tim
 
Регистрация: 05.06.2009
Сообщений: 1,703

JSprog,
спс за идею, попробую, тока события найду подходящие

Kolyaj,
можно примерчик маленький с callback? я что то я не очень представляю как это выглядит.
Ответить с цитированием
  #7 (permalink)  
Старый 31.08.2009, 15:23
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

В простейшем случае так
function request(url, params, callback) {
    var xhr = new XMLHttpRequest();
    xhr.onreadystatechange = function() {
        // Допустим мы уже дождались ответа
        callback();
    };
}
Ответить с цитированием
  #8 (permalink)  
Старый 31.08.2009, 15:28
Аватар для Tim
Tim Tim вне форума
Профессор
Отправить личное сообщение для Tim Посмотреть профиль Найти все сообщения от Tim
 
Регистрация: 05.06.2009
Сообщений: 1,703

спс, то что нужно
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Модуль для работы с модулями JSprog Ваши сайты и скрипты 29 02.09.2009 13:31
Кросс-браузерные функции B~Vladi Ваши сайты и скрипты 128 01.09.2009 17:11
Вопрос по функции Flex Общие вопросы Javascript 3 05.12.2008 04:03
Как проверить существование функции Aderba Общие вопросы Javascript 2 14.11.2008 16:09
владелец функции diagnost Общие вопросы Javascript 6 30.10.2008 15:04