Na mém webu mám jednu stránku, která se dynamicky aktualizuje prostřednictvím AJAX/JSON v prosté HTML stránce.
Nyní může být tato stránka otevřena až tři nebo čtyři dny. Když jsem to nechal běžet přes víkend, data zamrzla, server stále fungoval dokonale a po aktualizaci vše začalo znovu fungovat. Takže moje otázka zní Je časový limit aplikace Internet Explorer (nebo i jiné prohlížeče)?
Moje otázky přicházejí:
Obecně platí, že pokud máte kus kódu JavaScript, který se spouští na časovači s funkcí setTimeout
, bude spuštěn navždy. Nezapomeňte však, že prohlížeče jsou software pro stolní počítače a jako takové se někdy systému stane něco, co může tento prohlížeč ovlivnit. Je obtížné spekulovat, aniž bychom přesně věděli, jaké jsou podmínky vaší zkušenosti. Je možné, že prohlížeč zamrzl kvůli jinému spuštěnému systémovému softwaru. Je možné, že DNS systému šlo na chvilku kerflooie, a pak JavaScript tento problém nezvládl dobře. Je možné, že server obsluhující obsah zabalený na vteřinu vrátil nesprávný řetězec, který váš JavaScript nedokázal zpracovat, a poté se provádění stránky zastavilo. A konečně, možná prohlížeč dočasně došel paměť? Pokud vrácená data také přidala obsah, který přidal události na stránku, možná jste jednoduše došly paměti? To by byl případ, kdyby stránka skutečně „ztuhla“ - ale pravděpodobně byste v tom případě viděli varování paměti od uživatele [IE].
Spousta in a out pro tuto otázku, a není dostatek podrobností.
Neočekával bych, že IE vyprší časový limit, ale pokud požadavek ajax selhal a nemusí se pokusit o opakování. Dobrým způsobem, jak to potvrdit, by bylo použití Firefoxu a stažení pluginu nazvaného FireBug. Tím získáte protokol o všech požadavcích na http/ajax, které jsou vyžadovány z plochy, a ukáže vám, zda přijal nějaké chybové stavy zpět ze serveru nebo chybu javascriptu.