В поисках кого-то, кто реализовал какой-то механизм тайм-аута при использовании XMLHttpReqeust , наткнулся на PHP Atom Server в изолани (обслуживает XML ATOM ), который, как мне кажется, является частью среды isoTope, над которой он работает, а также клиента Javascript ATOM (который использует XMLHttpRequest).
Интересно, что он использует поток ввода php: // . На самом деле есть другой способ доступа к необработанным данным POST в PHP, который будет работать в старых версиях PHP, используя глобальную переменную $ HTTP_RAW_POST_DATA. Если в php.ini у вас не включен параметр Always_populate_raw_post_data, этот глобальный объект существует только в том случае, если HTTP-запрос POST был выполнен без Content-Type «application / x-www-form-urlencoded» (который является типом содержимого по умолчанию для нормальной формы). , Поверьте, вам также нужно объявить это или получить к нему доступ через массив $ GLOBALS, в отличие от других переменных, таких как $ _GET и $ _SERVER, например;
function getRawPost() { global $HTTP_RAW_POST_DATA; return $HTTP_RAW_POST_DATA; // or # return $GLOBALS['HTTP_RAW_POST_DATA']; }
function getRawPost() { global $HTTP_RAW_POST_DATA; return $HTTP_RAW_POST_DATA; // or # return $GLOBALS['HTTP_RAW_POST_DATA']; }
Тем не менее, я не приблизился к реализации тайм-аутов с помощью XmlHttpRequest;) Теперь происходят некоторые странные вещи — IE вызывает обратный вызов XmlHttpRequest.onreadystatechange для синхронизации и асинхронных запросов, но если вы вызываете метод abort (), подготовьтесь убить -9 (способ Windows). Между тем Mozilla, похоже, полностью игнорирует onreadystatechange при выполнении запросов на синхронизацию, что не оставляет много места для тайм-аута.
Некоторые другие интересные ссылки по пути;
Кросс-браузерный XMLHttpRequest — предоставляет частичную реализацию XMLHttpRequest для Opera
libXmlRequest — очень интересная реализация, использующая пул объектов XMLHttpRequest. Но все еще, кажется, не отвечает тайне тайм-аута.
Также от автора libXmlRequest: движок для веб-приложений — что-то в том же парке, что и ScriptServer . Лично меня отключили «слишком много» слоев абстракции и чрезмерного XML, но, возможно, это я — прозрачность относительна.
[Обновить]
Глядя во все неправильные места! У Кристиана есть ответ с Livesearch — используйте Window.setTimeout ()