Вопрос корифеям JavaScript

27.01.2011

Сейчас делаю на тестовой страничке асинхронный запрос через динамическое создание тега script с параметрами, и вот почему-то FireFox после начала запроса так и остаётся в режиме ожидания ответа, хотя ответ уже получен.

Я что-то не так делаю или FF у меня какой-то корявый? «Опера» вот мгновенно мигает адресной строкой и всё, а FF оставляет такое неприятное впечатление. Как победить?

Пробовал выдавать в JS ответа удаление этого элемента script, но не помогает. FF так и пишет в строке состояния: Transferring data from example.com…

P.S. Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.6) Gecko/20100625 Firefox/3.6.6.

P.P.S. Тестирую новую версию Daos с продвинутой защитой от накруток показов.

Обновлено через пару часов: оказывается, проблема в расширении Vimperator, его статусная строка работает не совсем так, как строка FF.

Комментарии

  1. # Тормоз

    Хм, наверно Content-Length спасёт в заголовках? А как правильно сделать это? Сейчас проверю…

  2. # Тормоз

    Но тогда если кто-то будет сервером делать GZIP-сжатие, всё поковеркается, наверно… Вот же дилемма. Не хватает мне знаний, ничерта не понимаю.

  3. # Тормоз

    А всё равно если указать Content-Lenght ничего не меняется.

  4. # Миша: 

    По-моему в фф просто остается постедний текст, о статусе выполнения запроса нужно судить из прогресс-бара, маленького в уголке, а текст не расчищается, последний остается висеть, в троечке по крайней мере…

  5. # Тормоз

    Блин, но это неприятно, у пользователя ведь остаётся ощущение, что браузер продолжает чего-то делать. Как быть?

  6. # Тормоз

    Ищу сейчас в буржунете, многие с этой проблемой сталкивались, а нормального решения пока не вижу. Усложняет ещё то, что я по-прежнему в JS дуб дубом. Хотя, вот уже с DOM-элементами могу творить всякое :) Прогресс есть.

  7. # Тормоз

    А вот чувак вообще готов $100 заплатить за решение этой проблемы.

  8. # Миша: 

    Не надо страдать, Тормоз, не надо думать что ты понимаешь что думают другие, они вообще на это внимания не обращают. Это до первой непонятки, откуда только берется эта глупая привычка тратить время на телепатию… Преждевременная оптимизация, так сказать, будут жалобы — будешь думать.

  9. # Тормоз

    Да блин, я тоже пользователь, и лично мне неприятно видеть это ожидающее сообщение в статусной строке.

  10. # Штудер

    А на сам скрипт можно взглянуть?

  11. # Тормоз

    Пока такая вот хрень получается. А counter.php выдаёт просто var response='OK'

  12. # Тормоз

    Какой же FF тупой, а! Даже если вызываемый скрипт физически не существует (сервер дал ответ с кодом 404), он всё равно пишет Transferring data from… Пиздец какой-то :(

  13. # Штудер

    насколько я помню скрипты просто так не вставляются, надо там еще немного шаманства чтобы все ок было.

  14. # Тормоз

    В каком смысле «не вставляются»? Элемент script создаётся, вызов происходит. Наверно придется просто запросы делать без вставки script, но это для меня сложнее.

  15. # Штудер

    Если не хочешь сильно заморачиваться – используй jQuery – очень здорово облегчит задачу. Если хочешь чистый js там тоже все не настолько сложно.

  16. # Тормоз

    Ну уж нет. Не понимаю этой современной моды использовать огромных монстров для решения простейших задач.

  17. # Тормоз

    Оказывается, три года уже мозилловцы даже и не думают пошевелиться. Такая вот фигня — https://bugzilla.mozilla.org/show_bug.cgi?id=383811

  18. # Rulexec

    Хм, я в тудурулетке (строки 80-87) своей сделал что-то не так?

    В смысле у меня там тоже скрипт на страницу вставляется, но вот строчечка, что «ожидание ответа от…» просто мелькает на совсем мало.

    Или это от версии лисы зависит?

  19. # lusever

    Как ты вставляешь скрипт?
    Вставляй в <header>. Для примера смотри код аналитикса.

  20. # Тормоз

    Rulexec, да, от версии зависит, видимо. У меня на твоей «Рулетке» тоже висит Transferring data from…

    Lusever, выше есть ссылка на код. Какая разница, вставлять скрипт в header или в любое место body?

  21. # Тормоз

    Тем не менее, я проверил — абсолютно никакой разницы нет, даже если в head вставлять также как Rulexec делает.

  22. # flash.kosta

    Лисичка то уж обновилась давно =)
    3.6.13

  23. # Штудер

    если скрипт отрабатывает нормально, то сделай просто в скрипте обнуление значения статус бара :)

  24. # Тормоз

    Flash.kosta, у тебя 3.6.13? Сделай скриншот вот этого сайта, пожалуйста. Вместе со строкой состояния.

    Штудер, а так разве можно? Да и это придется ещё городить проверку браузера, и вообще коряво как-то.

  25. # Тормоз

    Скриншот можно не делать. Я обновился до 3.6.13 — баг остался.

  26. # Тормоз

    И, кстати, Штудер, http://javascript.ru/window.status. Забавно, что не только установить, но и получить значение невозможно — оно пустое.

  27. # Тормоз

    Я тормоз-тормоз. Отключил плагин Vimperator и статусная строка ожила. FF не при чём, похоже, и у большинства пользователей будет всё нормально. Снова я убил дочерта времени на какую-то незначительную ерунду.

  28. # Штудер

    Бывает, не парься :)

  29. # Тормоз

    А вообще код ничего, нормальный? Строчка теперь в DOM-дерево встраиваться будет, а не через допотопный document.write. Правда, никаких особых преимуществ это не даёт.

  30. # Rulexec

    Ну как, теперь твой скрипт будет возможно вставить в xHTML-документ (и такие бывают, да о_О).

  31. # Тормоз

    Не понял, а почему раньше нельзя было? У меня в блоге xHTML, например.

  32. # Rulexec

    Неправильные у тебя какие-то пчёлы, не должно.

    document.write должен ломать всю страницу по-идее в xhtml, вроде как. Или просто браузеры справляются, хотя по концепту нельзя так.

  33. # Тормоз

    Я про это не знал и не подозревал даже, мне посоветовали очень давно, я просто сделал — и оно у всех везде работало (и работает). Видимо, это тот самый случай, когда браузеростроителям было проще подчиниться, чем принципиально вредничать.

Комментирование этой статьи закрыто.

Интересное Покупки ТехникаРазное Отдых Статьи Строительство Услуги Общество Хобби Культура Советы Уют