| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: Общие вопросы > Глюки с XMLHttpRequest |
| Автор: Black 15.6.2005, 00:45 |
| Я постоянно замечаю, что иногда запросы от XMLHttpRequest как будто исчезают. Точнее неверно работает: zapros.responseText Запрос то отсылается. А вот ответ не приходит. Серверные скрипты работают на УРА. Все уже тысячу раз проверил. А вот если я буду постоянно запускать на выполнение XMLHttpRequest так один из 20 раз обязательно не вернет результат от серверного скрипта. Почему это происходит? Или это только у меня??? Может как-то от этих багов можно избавиться. Также заметил, что если на одну функцию формирующую XMLHttpRequest-запросы повесить два события, и они будут почти мнговенно вызывать запросы через XMLHttpRequest, тогда даже запросы не посылаются. Т.е. XMLHttpRequest не умеет выстраивать цепочку ожидания запросов. Поэтому приходится все события вешать на разные XMLHttpRequest. Каждому события - свой XMLHttpRequest . |
| Автор: Иль 15.6.2005, 08:24 |
| ничего себе!!! PHP-DIRECTOR, спасибо что поделился. Наверное сэкономил мне тучу времени в будующем (цепочка ожиданий запросов). |
| Автор: Ciber SLasH 15.6.2005, 12:15 |
| 2PHP-DIRECTOR: Сильно не бей, если щас глупость скажу, XmlHttpRequest'ом ещё не пользовался. Но, возможно это зависит от браузера. Как я понял ты юзаешь Лису, а в ней часто при нажатии на ссылку запрос отсылается, но она не дожидаясь ответа говорит, что "Готово", хотя на самом деле страница не обновляется. |
| Автор: Black 15.6.2005, 13:14 |
| Ciber SLasH в IE запросы пропадают реже. Короче поставлю на все кнопки (после нажатия) disable и думаю будет нормально. |
| Автор: Opik 15.6.2005, 18:18 |
| PHP-DIRECTOR Да, я такую проблему тоже наблюдал у себя в чате, я думаю это связано с тем, что он не успевает обработать предыдущий. а уже летит следующий запрос... |
| Автор: Рыжий 15.6.2005, 18:23 |
| вот в этом то и проблема - ведь xmlhttprequest был четко сделан для быстрых чато, а если в чате человек 200 - обязательно кто-то напишет в одно время вот тут и несправиться xmlhttprequest - БОЛЬШОЙ минус с его стороны |
| Автор: Иль 15.6.2005, 19:22 | ||||
И вот это не помогает?
В смысле:
Добавлено @ 19:24 Ну для ИЕ что-то похожее будет |
| Автор: Black 15.6.2005, 22:31 |
| Также xmlhttprequest не умеет отсылать данные через POST. Хотя должен уметь Только GET. Проверял через скрипт на PHP Если переменная $_GET['ля-ля'] - существует. То $_POST['ля-ля'] - не существует. Хотя отсылка данных идет вроде бы через POST. |
| Автор: Aliance 16.6.2005, 12:45 | ||
Как же не умеет, умеет. |
| Автор: Black 16.6.2005, 17:56 |
| Aliance приведи пример, как с помощью xmlhttprequest отправить данные через POST. PHP скрипт всегда принимает переменные как GET. Либо я чего-то не того делаю, либо и правда не умеет через POST посылать. |
| Автор: sergejzr 16.6.2005, 18:03 |
| Необновление запроса может быть вызвано тем, что xmlhttprequest ожидает файл. А что происходит с файлом после загрузки? Правильно он кэшируется. чтобы не забирать одно и тоже каждый раз. Происходящее можно проверить на то, что отсылает сервер. Cкорее всего "not modified". ИМХО надо серверную сторону в этом винить. И смотреть, как избавится от этого... |
| Автор: Sardar 17.6.2005, 03:11 | ||||
Какая разница обьекту в твоём клиенте на количество юзеров в чате ? Проблема скорее всего в том что при каждом send обьект abort'иться, елси что то не дозагрузилось, то контент накрываетьс я тазом и по новой. Выход:
Сервер может это отослать только если браузер отсылает If-Modifed-Since заголовок, а значит документ в кеше. Если сервак присылает not modified, то браузер берёт инфу из кеша, клиент при этом ни о чём не догадываеться. Надо искать ошибки в: таймаутах и валидности XML, ИЕ обещает ругаться матом если ответ приходит не валидным XML. Любые эмоции бродилки это задержки по времени и неизвествные глюки |
| Автор: Aliance 17.6.2005, 12:04 |
| PHP-DIRECTOR http://forum.vingrad.ru/index.php?showtopic=51779 |
| Автор: Black 17.6.2005, 13:02 | ||||
| Так я так и не понял как в Мозилле передать POST если в IE это допустимо
где url - это путь к скрипту, который обрабатывает запрос. param - параметры передаваемые скрипту-обработчику. Ну, а в Мозилле как передать данные постом??? Ведь там всегда так:
А если не нуль. то Мозилла просто виснет напрочь |
| Автор: Black 17.6.2005, 14:38 | ||||
Кстати, еще заметил:
работает, а так:
не работает в Мозиле, а в IE работает. В данном случае (с false) Мозила не возвращает результат запроса вообще |
| Автор: Aliance 18.6.2005, 18:04 |
| Отправлять null нужно только для ИЕ. Там все описано. Кроме того, если не изменяет память, кто-то обнаружил глюк, якобы нужно писать метод заглавными буквами ( POST ) |