IE lädt javascripts nicht neu

Hallo,

Meine HTML-Seite sieht ungefähr so aus:

[CODE]

[/CODE]

Wenn ich F5 drücke wird die Seite oftmals nicht aktualisiert!

Ich habe dann versucht die script-Tags abzuwandeln, z.B.:

<script type="text/javascript">document.write("<script type='text/javascript' src='http://meinserver.de/GetJS.cgi?par1=tgm&par2=xyz[COLOR="Red"]&time=" + (new Date).getTime() + "'><\/script>");</script>

… damit der Url jedes Mal anders aussieht, aber da dürfte document.write Probleme bereiten, weil es anscheinend zu früh die Seite löscht :frowning:

Am Server habe ich Caching deaktiviert. Ich weiß nicht mehr was ich noch machen kann.

Die Meta-Angaben bezüglich Caching in der HTML-Webseite haben anscheinend auch keine Auswirkung!

Die IE Developer Toolbar hat ja Funktion „Immer vom Server holen“ oder so, aber auch das bringt nichts.

Bitte um Tipps und Tricks.

Danke und lg.

in zu schreiben wird nichts bringen. Evtl. musst du no-cache-Header für die JS-Dateien senden.

Ich habe damit schon einiges ausprobiert, aber vielleicht hilft ja das hier: „Pragma: No-cache“ Tag May Not Prevent Page from Being Cached

Gibt es denn keine Möglichkeit einem Url die aktuelle Zeit als Urlparameter anzuhängen?

Gibt es denn keine Möglichkeit einem Url die aktuelle Zeit als Urlparameter anzuhängen?
Sicher. Beispiel PHP:
[HTML][/HTML]Mfg

Ich meinte aber, dass die Uhrzeit am Client dem src-Url angefuegt wird, damit quasi immer ein neuer Url aufgerufen wird und nicht einer aus dem Cache.

Kommt drauf an. Mit Javascript ist das möglich indem du den Link eine Methode anfügst die, window.location benutzt. Sowas wie

[HTML]
Klick mich
[/HTML] function goURl(url) { var date = new Date(); window.location = url+"?time="+date.getTime(); } So bekommst du den unix timestamp mitgegeben. Die Zeit wird jedoch vom Client ausgelesen.
Den unixtimestamp kannst du in php mit date()umwandeln in ein datum und zeit

[CODE]

$datum = date(„H:i:s“,$_GET[‚time‘]);

[/CODE]Hoffe das hilft

Natürlich ist der User damit auf Javascript angewiesen. Es gibt betsimmt noch eine schönere Methode wo er dies nicht ist :slight_smile:
Wollte nur nich href beschreiben, da der user bei zu schnellem klicken sonst trotzdem auf die href seite kommt

Ja schon, aber meine Scripttags werden ja während dem body-onload geladen.
Somit kann ich kein onclick verwenden, oder stehe ich auf der Leitung?

Die Funktion wird ja trotzdem nicht ausgeführt (Es sei denn du läst sie beim laden ausführen) Der Script teil mit der Funktion, den ich gepostet hab gehört auch in den head Teil :slight_smile:

Wird es doch bei meinem Beispiel. Bei jedem Aufruf wird die aktuelle Zeit ausgegeben im Format: His (125840 wenn es 12:58:40 Uhr ist).

Die Zahl hat recht. Grade verpennt. Natürlich ist seine Lösung wesentlich eleganter, da du dort kein javascript brauchst :smiley:

Ich brauche die Uhrzeit aber schon am Client, damit der abgesetzte Request am Client jedes Mal anders aussieht!

Dann funktioniert nur die Javascript Methode. Aber erklär mal wieso du nicht die PHP variante nehmen willst. Denn die uhrzeit die du dabei erhälst, ist fast die selbe(±2 Sekunden), wenn die Uhrzeit des Clients richtig gestellt ist.

Weil alles nichts half. Weder dan anfügen der Zeit, noch das deaktivieren des Browsercaches oder Servercaches.

Einziges was jetzt endlich geholfen hat, war das Schlüsselwort „defer“ in jedem einzelnen script-Tag!

Vielleicht brauchts ja wieder mal jemand…

Vielen Dank für eure Tipps!

Ich kann das zwar nicht nachvollziehen (allerdings nutze ich seltenst den IE und noch seltener mit eigeschaltenem JS), doch defer hat nichts mit dem Cache zu tun.
Damit symbolisierst du dem Browser nur, dass er nicht warten muss und das das eingebundene Skript keine Ausgabe mit document.write macht.

EDIT:Es gibt unterschieldiche Aussagen über defer, aber die richtige scheint zu sien, dass Skript wartet mit der Ausführung, bis die Seite geladen wurde.

Kann es sein, dass du in dem Skript versuchst auf eine Element zu zugreifen, das noch nicht existiert?

Noch ein EDIT: Mit deinem Orginalcode kann defer nicht funktionieren