Чрезвычайно странное поведение в Internet Explorer с большим приложением GWT - PullRequest
4 голосов
/ 11 ноября 2010

У меня на странице есть загрузчик, который удаляется при получении успешного ответа на мой RPC.В случае сбоя вызова RPC страница мгновенно обновляется.

Каждый раз, когда я загружаю свою страницу в первый раз в IE 7 или 8, она никогда не загружается и никогда не достигает метода вызова rpc, в котором произошел сбой.Каждый раз, когда я вручную обновляю эту неудачную загрузку, это работает.Я был в состоянии воспроизвести это около 30 раз.Это проблема, потому что страница просто сидит там с загрузчиком на экране.

Я понятия не имею, что может происходить.Попробуйте сами:

1) Откройте IE7 или IE8.2) Перейдите на http://www.foodtrucksmap.com/ 3) На странице будет написано «Готово», и вы всегда будете там с загрузчиком на экране.4) Обновите страницу, и она должна работать.

Мне удалось найти только одно плохое решение ... создать таймер на 30 секунд, и если загрузчик все еще на экране, обновитестр.Я бы лучше выяснил, что происходит, хотя.

ОБНОВЛЕНИЕ

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

Ответы [ 2 ]

0 голосов
/ 20 декабря 2010

Исходя из того, какую ограниченную информацию вы разместили, и что я смог вытащить с вашего сайта, мне интересно, не попали ли вы в тайм-аут запроса или к другой проблеме, связанной с сервером. Например, у вас загружается 36 несжатых файлов javascript (35 из которых завершаются) и целый хост с 407 ошибками прокси.

Вы должны быть очень осторожны с порядком загрузки js-файлов и местом размещения тегов скрипта. IE особенно чувствителен к этому.

У вас есть два варианта:

  1. Попробуйте добавить defer к тегам скрипта; это должно заставить его загрузить JS после загрузки контента.
  2. Поскольку yahoo предлагает переместить теги сценария чуть выше закрывающего тега body (), а затем попробуйте, чтобы увидеть, если это что-то меняет. Могу поспорить, что он ожидает загрузки контента, основанного на файлах javascript, еще не завершил загрузку, и время ожидания истекло.
0 голосов
/ 17 декабря 2010

У меня был неприятный опыт с IE, кеширующим запросы AJAX GET, независимо от того, что мы пытались.
Там, где это имело значение, лучшим решением, которое мы могли найти, было использование POST, которое решило проблему, но это обходной путь. Изменение заголовков для явного запрета кэширования тоже не сработало.

...