Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.09.2011, 18:57
Интересующийся
Отправить личное сообщение для Nikoole Посмотреть профиль Найти все сообщения от Nikoole
 
Регистрация: 04.07.2011
Сообщений: 20

Инициация первого запуска функции
Ребят, есть такая функция:
function updateCurrGames()
{
	$.ajax
		({
			type: "POST",
			dataType: "json",
			url: "./ajax/updateCurrGames.php",
			success: function(currGames)
			{
			     // do something
			}	
		});
}

Скрипт updateCurrGames.php может выполняться очень долго (будет "молчать" и ничего не выводить до тех пор, пока в базе не произойдут изменения (не создадут новую игру)).

в html пишу:
<body onLoad=" updateCurrGames();">

и страница очень долго грузится (на самом деле как будто ожидает ответа от updateCurrGames.php, но ведь обращение к этому файлу произошло после загрузки страницы??? (вот тут: body onLoad=" updateCurrGames();"))

Как функцию запустить после полной-полной загрузки страницы? Чтобы ожидание ответа от updateCurrGames.php было "в фоне", а не заставляло браузер ждать ответа?

С проблемой можно ознакомиться тут: http://gifbox.ru/game4/ . Попробуйте открыть страницу. Если она все-же загрузится быстро (такое иногда бывает) - попробуйте обновить.

То что страница так долго "грузится" именно по названной выше причине - это точно...
Ответить с цитированием
  #2 (permalink)  
Старый 08.09.2011, 19:18
Профессор
Отправить личное сообщение для ваый Посмотреть профиль Найти все сообщения от ваый
 
Регистрация: 29.06.2011
Сообщений: 445

Попробуйте так. onLoad=" updateCurrGames();" уберите, а перед </body> вставьте код:
setTimeout(function() {
	updateCurrGames();
}, 50);
Ответить с цитированием
  #3 (permalink)  
Старый 08.09.2011, 19:34
Интересующийся
Отправить личное сообщение для Nikoole Посмотреть профиль Найти все сообщения от Nikoole
 
Регистрация: 04.07.2011
Сообщений: 20

Спасибо за наводку. Так стало легче. Но таймаут увеличил. 50мс оказалось мало...
Другого выхода нет..?
Ответить с цитированием
  #4 (permalink)  
Старый 08.09.2011, 19:39
Профессор
Отправить личное сообщение для ваый Посмотреть профиль Найти все сообщения от ваый
 
Регистрация: 29.06.2011
Сообщений: 445

Сообщение от Nikoole
Спасибо за наводку. Так стало легче. Но таймаут увеличил. 50мс оказалось мало...
Другого выхода нет..?
Некоторые браузеры думают, что страница еще не загрузилась, если висит незакрытое соединение. Хром тот же. Поэтому, насколько я знаю, это единственный способ. Сам я делаю так.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как в браузерах реализуются функции DOM (например createElement) iamme Общие вопросы Javascript 7 02.09.2011 20:26
динамическое содержимое функции alfmaster Общие вопросы Javascript 2 28.05.2011 17:10
Превращение значения обьекта в название функции. alexandre Общие вопросы Javascript 4 16.02.2011 01:04
arguments вызвавшей функции mister_maxim Общие вопросы Javascript 4 12.10.2010 16:21
Подскажите, как работает простой код (замыкание функции)? Dotod Общие вопросы Javascript 5 02.12.2009 04:03