Autor Zpráva
Pytris
Profil *
Dobrý večer,
poradíte mi někdo, proč tento skript nefunguje v IE?

<script type="text/javascript"> 
        $(document).ready(function(){
            function update() {                                
                $.ajax({
                url : "http://www.nekde.work/clock.php",
                success : function (data) {
                            $("#time").html(data);
                          }
                });                                                
                setTimeout(update, 1000);
        
            }
            update();               
         });
        </script>

Skript clock.php vraci aktualní čas, #time je DIV ve kterém by se měl čas ukázat.

Díky za rady

Moderátor Davex: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ).
Moderátor Chamurappi: Titulek „Jquery load“ nevystihuje podstatu dotazu. Příště zkus prosím vymyslet lepší.
Davex
Profil
Pytris:
proč tento skript nefunguje v IE?
Protože se v IE kešuje výsledek prvního volání.

Vskutku originální nápad ptát se AJAXem každou vteřinu na aktuální čas. Za to tě budou webhosteři milovat.
ninja
Profil
Pro obejití keše v IE doporučuji posílat nějaký "náhodný hash" :-)
url : "http://www.nekde.work/clock.php?timestamp="+(new Date().getTime() / 1000),
Chamurappi
Profil
Reaguji na Davexe:
Až tak originální nápad to zase není :-)


Reaguji na Pytrise:
Nemusí to takhle fungovat v žádném prohlížeči, pokud je počítač za nějakou proxy keší.
Davex
Profil
ninja:
Když už jsi to zmínil, tak ano, stejným způsobem funguje vypnutí kešování parametrem
cache: false,
Witiko
Profil
ninja:
Jen dodám, že tu už máme i funkci Date.now, která v případě podpory eliminuje nutnost tvorby instance objektu Date. :)

url : "http://www.nekde.work/clock.php?timestamp=" + (Date.now?Date.now():new Date().getTime()),
Pytris
Profil *
Ahoj,
díky za rady.

Co tedy navrhujete, když "originální nápad ptát se AJAXem každou vteřinu na aktuální čas" není to pravé ořechové??
Witiko
Profil
Pytris:
Zeptat se jednou, do proměnné uložit rozdíl času uživatelových hodin a hodin na straně serveru a dále zobrazovat čas na základě hodin klienta s aplikováním daného posunu.
Pytris
Profil *
[#8] Witiko
To asi není úplně špatný nápad, díky za radu.
Pytris
Profil *
Poradil by někdo pár prověřených linků, ohledně kešuje výsledku a vůbec této problematice? (nejsem v této problematice znalý)

Předem díky.
Witiko
Profil
Už jednou jsem tu zveřejňoval řešení serverového času:
http://diskuse.jakpsatweb.cz/?action=vthread&forum=8&topic=113247&page=0#10

Kód je podle mého přehledný, vytahej a případně přepiš do jQuery, co uznáš za vhodné.

Ohledně cache:
http://support.microsoft.com/kb/234067

K pozornosti doporučuji odstavec 'Další informace', který tě seznámí s účelem hlaviček a správným použitím. Článek není o javascriptu, ale to vůbec nevadí, protože problematika se točí kolem HTTP protokolu, ne javascriptu.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: