Модераторы: Sardar, Aliance

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Глюки с XMLHttpRequest 
:(
    Опции темы
Black
  Дата 15.6.2005, 00:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Web-Development
**


Профиль
Группа: Участник
Сообщений: 980
Регистрация: 15.8.2004

Репутация: 4
Всего: 45



Я постоянно замечаю, что иногда запросы от XMLHttpRequest как будто исчезают. Точнее неверно работает:

zapros.responseText

Запрос то отсылается. А вот ответ не приходит.

Серверные скрипты работают на УРА. Все уже тысячу раз проверил. А вот если я буду постоянно запускать на выполнение XMLHttpRequest так один из 20 раз обязательно не вернет результат от серверного скрипта.

Почему это происходит? Или это только у меня??? Может как-то от этих багов можно избавиться.

Также заметил, что если на одну функцию формирующую XMLHttpRequest-запросы повесить два события, и они будут почти мнговенно вызывать запросы через XMLHttpRequest, тогда даже запросы не посылаются.

Т.е. XMLHttpRequest не умеет выстраивать цепочку ожидания запросов.

Поэтому приходится все события вешать на разные XMLHttpRequest. Каждому события - свой XMLHttpRequest .


--------------------
Могу все, но ничего не умею :-)
PM WWW   Вверх
Иль
Дата 15.6.2005, 08:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 544
Регистрация: 3.3.2005
Где: Москва

Репутация: 2
Всего: 14



ничего себе!!! PHP-DIRECTOR, спасибо что поделился. Наверное сэкономил мне тучу времени в будующем (цепочка ожиданий запросов).



--------------------
Ты виндусятник?... А я да. smile
PM MAIL ICQ Skype GTalk   Вверх
Ciber SLasH
Дата 15.6.2005, 12:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: 24
Всего: 67



2PHP-DIRECTOR:
Сильно не бей, если щас глупость скажу, XmlHttpRequest'ом ещё не пользовался. smile
Но, возможно это зависит от браузера. Как я понял ты юзаешь Лису, а в ней часто при нажатии на ссылку запрос отсылается, но она не дожидаясь ответа говорит, что "Готово", хотя на самом деле страница не обновляется.
PM   Вверх
Black
Дата 15.6.2005, 13:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Web-Development
**


Профиль
Группа: Участник
Сообщений: 980
Регистрация: 15.8.2004

Репутация: 4
Всего: 45



Ciber SLasH
в IE запросы пропадают реже.

Короче поставлю на все кнопки (после нажатия) disable и думаю будет нормально.


--------------------
Могу все, но ничего не умею :-)
PM WWW   Вверх
Opik
Дата 15.6.2005, 18:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

Репутация: 1
Всего: 55



PHP-DIRECTOR
Да, я такую проблему тоже наблюдал у себя в чате, я думаю это связано с тем, что он не успевает обработать предыдущий. а уже летит следующий запрос...
PM MAIL Skype   Вверх
Рыжий
Дата 15.6.2005, 18:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Помешанный
***


Профиль
Группа: Завсегдатай
Сообщений: 1423
Регистрация: 19.9.2004

Репутация: нет
Всего: 20



вот в этом то и проблема - ведь xmlhttprequest был четко сделан для быстрых чато, а если в чате человек 200 - обязательно кто-то напишет в одно время вот тут и несправиться xmlhttprequest - БОЛЬШОЙ минус с его стороны smile
PM MAIL ICQ   Вверх
Иль
Дата 15.6.2005, 19:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 544
Регистрация: 3.3.2005
Где: Москва

Репутация: 2
Всего: 14



И вот это не помогает?
Код

ax=new XMLHttpRequest;
bx=new XMLHttpRequest;

В смысле:
Код

<html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<script language="JavaScript" type="text/JavaScript">

</script>
</head><body id="y" onclick="" onload="">
<script language="JavaScript" type="text/JavaScript">
ax=new XMLHttpRequest;
bx=new XMLHttpRequest;
alert(ax+"\n"+bx)
alert(ax==bx)
</script>
</body></html>

Добавлено @ 19:24
Ну для ИЕ что-то похожее будет


--------------------
Ты виндусятник?... А я да. smile
PM MAIL ICQ Skype GTalk   Вверх
Black
Дата 15.6.2005, 22:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Web-Development
**


Профиль
Группа: Участник
Сообщений: 980
Регистрация: 15.8.2004

Репутация: 4
Всего: 45



Также xmlhttprequest не умеет отсылать данные через POST. Хотя должен уметь smile

Только GET.

Проверял через скрипт на PHP

Если переменная

$_GET['ля-ля'] - существует.
То $_POST['ля-ля'] - не существует. Хотя отсылка данных идет вроде бы через POST.


--------------------
Могу все, но ничего не умею :-)
PM WWW   Вверх
Aliance
Дата 16.6.2005, 12:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 55
Всего: 137



Цитата(PHP @ 15.6.2005, 23:31)
не умеет отсылать данные через POST

Как же не умеет, умеет.
PM MAIL WWW ICQ Skype   Вверх
Black
Дата 16.6.2005, 17:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Web-Development
**


Профиль
Группа: Участник
Сообщений: 980
Регистрация: 15.8.2004

Репутация: 4
Всего: 45



Aliance
приведи пример, как с помощью xmlhttprequest отправить данные через POST.

PHP скрипт всегда принимает переменные как GET. Либо я чего-то не того делаю, либо и правда не умеет через POST посылать.


--------------------
Могу все, но ничего не умею :-)
PM WWW   Вверх
sergejzr
Дата 16.6.2005, 18:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 10
Всего: 360



Необновление запроса может быть вызвано тем, что xmlhttprequest ожидает файл. А что происходит с файлом после загрузки? Правильно он кэшируется. чтобы не забирать одно и тоже каждый раз.
Происходящее можно проверить на то, что отсылает сервер. Cкорее всего "not modified".

ИМХО надо серверную сторону в этом винить. И смотреть, как избавится от этого...


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Sardar
Дата 17.6.2005, 03:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Цитата(PHP @ 15.6.2005, 17:23)
а если в чате человек 200 - обязательно кто-то напишет в одно время вот тут и несправиться xmlhttprequest - БОЛЬШОЙ минус с его стороны

Какая разница обьекту в твоём клиенте на количество юзеров в чате ? smile Хорошенько подумай что такое XMLHttpRequest.

Проблема скорее всего в том что при каждом send обьект abort'иться, елси что то не дозагрузилось, то контент накрываетьс я тазом и по новой. Выход:

  • хороший - ставим несколько обьектов
  • не очень - передавать в метод open третьим аттрибутом false , таким образом JS не продолжит исполнение пока обьект не загрузиться полностью, либо не будет ошибки.


Цитата(sergej @ 16.6.2005, 17:03)
Происходящее можно проверить на то, что отсылает сервер. Cкорее всего "not modified".

Сервер может это отослать только если браузер отсылает If-Modifed-Since заголовок, а значит документ в кеше. Если сервак присылает not modified, то браузер берёт инфу из кеша, клиент при этом ни о чём не догадываеться. Надо искать ошибки в: таймаутах и валидности XML, ИЕ обещает ругаться матом если ответ приходит не валидным XML. Любые эмоции бродилки это задержки по времени и неизвествные глюки smile


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Aliance
Дата 17.6.2005, 12:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 55
Всего: 137



PM MAIL WWW ICQ Skype   Вверх
Black
Дата 17.6.2005, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Web-Development
**


Профиль
Группа: Участник
Сообщений: 980
Регистрация: 15.8.2004

Репутация: 4
Всего: 45



Так я так и не понял как в Мозилле передать POST

если в IE это допустимо
Код


GetData.open('post', url, false);
GetData.send(param);


где url - это путь к скрипту, который обрабатывает запрос.
param - параметры передаваемые скрипту-обработчику.

Ну, а в Мозилле как передать данные постом???
Ведь там всегда так:

Код

GetData.open('post', url, false);
GetData.send(null);


А если не нуль. то Мозилла просто виснет напрочь smile


--------------------
Могу все, но ничего не умею :-)
PM WWW   Вверх
Black
Дата 17.6.2005, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Web-Development
**


Профиль
Группа: Участник
Сообщений: 980
Регистрация: 15.8.2004

Репутация: 4
Всего: 45



Кстати, еще заметил:

Код

GetData.open('post', url, true);


работает, а так:

Код

GetData.open('post', url, false);


не работает в Мозиле, а в IE работает.
В данном случае (с false) Мозила не возвращает результат запроса вообще smile




--------------------
Могу все, но ничего не умею :-)
PM WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0600 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.