Einzelne Seite per JS erneut im Frameset laden: "Netzwerkfehler" (Proxy-Cache-Problem?)
Stefan Bion
Hallo,
in meine Seiten habe ich JavaScript-Code eingebaut, um bei Aufruf einer einzelnen Seite das fehlende Frameset "nachzuladen". Dies funktioniert kurz gesagt so, daß mittels top.frames.length und top.frames[x].name überprüft wird, ob die betreffende Seite in einem Frameset geladen wurde, und wenn ja, ob in dem richtigen Frameset. Falls nicht, wird an top.location.href der Dateiname "index.htm" und, abgetrennt durch "?", der Name der betreffenden Seite übergeben. Dadurch wird der aktuelle Ladevorgang der einzeln aufgerufenen Seite abgebrochen und die Index-Seite geladen. Diese baut per document.write() dynamisch ein Frameset auf, als dessen Startseite es den als Parameter hinter "?" übergebenen Dateinamen einsetzt. Dadurch wird die Seite, die ursprünglich einzeln geladen werden sollte, im passenden Frameset geladen.
Soweit so gut - das funktioniert offline auch alles wunderbar, und online mit *sehr kleinen Seiten* auch.
Aber (und jetzt kommt das Problem):
Bei größeren Seiten meldet Netscape während des erneuten Ladens der Seite im Frameset, daß "Während der Datenübermittlung [...] ein Netzwerkfehler aufgetreten" sei und unterbricht daraufhin den Ladevorgang. Führe ich (z.B. durch Strg+R) einen Reload aus (in der Adreßzeile steht z.B. die URL http://www.irgendwas.de/home/index.htm?seite.htm), dann funktioniert das vollständige Laden der Seite fehlerlos. Wenn eine Seite einmal durch 'Reload' vollständig geladen wurde, funktionierte es auch weiterhin mit dieser einen Seite.
Das Problem tritt übrigens nur dann auf, wenn ich über den Proxy-Server meines Providers ins Web gehe. Bei einer direkten Verbindung zum Internet gab es keine Probleme.
Meine Vermutung: Möglicherweise liegt die Seite durch das Abbrechen des Ladevorgangs unvollständig im Proxy-Cache und beim Nachladen wird diese unvollständige Kopie aus dem Proxy-Cache geholt.
Testweise habe ich einmal <meta http-equiv="expires" content="0"> in den HTML-Header eingesetzt. Leider ohne Erfolg.
Fällt jemandem von Euch vielleicht noch eine Lösung ein? Oder ist meine Vermutung mit dem Proxy-Cache ganz falsch?
Gruß,
Stefan