Показать сообщение отдельно
Старый 04.11.2007, 18:09
IDVsbruck вне форума Посмотреть профиль Отправить личное сообщение для IDVsbruck Найти все сообщения от IDVsbruck
  № 1  
Ответить с цитированием
IDVsbruck

Регистрация: Oct 2006
Сообщений: 22
По умолчанию Рекурсия при запросах к серверу

Нашел замечательный механизм - задержка ответа сервера при ajax-запросе (так называемый Continuation из Jetty, технология Comet) - когда ответ с сервера приходит при получении ожидаемого события (например, обновление информации только когда на страницу входит новый посетитель). Так как запрос асинхронный, флешка работает в нормальном режиме.

Вызов осуществляю вызовом функции:
Код:
function getStatus() {
	var sendData = new LoadVars();
	var loadData = new LoadVars();
	loadData.onLoad = function(success: Boolean) {
		if (success) {
			if (loadData.param1 != undefined) lblParam1.text = loadData.param1;
			if (loadData.param2 != undefined) lblparam2.text = loadData.param2;
			getStatus();
		}
	}
	sendData.userID = userID;
	sendData.sessionID = sessionID;
	sendData.recieveParameter = "get_status";
	sendData.sendAndLoad("{path to my script}", loadData);
}
Можно ли таким образом делать постоянный опрос сервера? Допустима ли рекурсия в таком исполнении? (Просто я что-то такое слышал об ограничении флешем уровней рекурсии - может, это и бред, но когда приложение не работает и не можешь найти решения, то прислушиваешься уже ко всему).

Ну и еще такой вопрос: наверняка кто-то реализовывал на флеше реакцию на действия сервера не сокетом (к сожалению, мне он тут не подходит), а постоянным опросом сервера через, например, равные промежутки времени на предмет наличия изменений. В чистом html (или jsp) это сделать проще - ответом сервера служит скрипт с функцией повторного запроса - и следующий вызов происходит не из функции (она завершила свою работу - получила контент), а путем запуска скрипта из вновь полученного контента. А вот как это же реализовывают во флеше? - Если простой рекурсией, то нет ли переполнения стека? Не съедается ли память?

Большая благодарность за помощь или совет.