location.href - reload nach timeout
Marco Kaiser
- javascript
0 Andi
Hallo,
folgendes kleines Script macht mir im Firefox (1.0.4) Probleme:
-----
<html>
<head>
<script language="JavaScript" type="text/javascript">
<!--
parent.location.href = "test.cgi";
-->
</script>
</head>
<body bgcolor="#FFFFFF"></body>
</html>
-----
Der Aufruf funktioniert ohne Schwierigkeiten, das cgi wird angestossen. Das eigentliche Problem besteht darin, dass der Firefox nach 90 Sekunden selbige URL noch einmal aufruft, wenn bis dahin keine Antwort vom Server kam. Die Laufzeit des Scripts kann je nach Last aber durchaus länger als 90 Sekunden dauern. Ein zweiter Aufruf ist insoweit unerwünscht, als dass nur beim ersten Aufruf die korrekten Daten angezeigt werden können und beim zweiten Aufruf diese nicht mehr zur Verfügung stehen.
Weitere Tests ergaben:
1. Der IE wartet brav bis zum Timeout.
2. Das javascript selbst wird nicht mehrfach ausgeführt, also keine Chance hier was über Variablen zu drehen.
3. Es ist egal, ob nun top.location.href, parent.location.href oder location.href aufgerufen wird.
Hat jemand noch eine Idee, wie man dem Firefox den Retry abgewöhnen kann?
Was noch bliebe, wäre das Script schneller zu machen, was aber aus Gründen des Aufwands vorerst nicht in Frage kommt.
Hat jemand noch eine Idee, wie man dem Firefox den Retry abgewöhnen kann?
Was noch bliebe, wäre das Script schneller zu machen, was aber aus Gründen des Aufwands vorerst nicht in Frage kommt.
Hi Marco,
die einzige Idee die ich zur Zeit habe wäre, die Server-Response nicht zu puffern (falls das geschieht), sondern Ergebnisse oder zumindest den Header gleich (oder bald) rauszuschreiben (ich nehme an, Du berechnest in Deinem CGI die Ausgabe erst komplett, bevor Du sie rausschreibst?)...
Gruß,
Andi
Hat jemand noch eine Idee, wie man dem Firefox den Retry abgewöhnen kann?
Was noch bliebe, wäre das Script schneller zu machen, was aber aus Gründen des Aufwands vorerst nicht in Frage kommt.Hi Marco,
die einzige Idee die ich zur Zeit habe wäre, die Server-Response nicht zu puffern (falls das geschieht), sondern Ergebnisse oder zumindest den Header gleich (oder bald) rauszuschreiben (ich nehme an, Du berechnest in Deinem CGI die Ausgabe erst komplett, bevor Du sie rausschreibst?)...
Gruß,
Andi
Eigentlich werden in einem Applikationserver Datenbankabfragen gemacht und es handelt sich nicht um ein cgi. Ich habe es nur zum Verständnis hier eingetragen, dass es sich um einen lang laufenden Prozess handelt. Das Erzeugen der Seite selbst geht *schnipp* am Ende des Prozesses, aber halt erst nachdem diverse zeit intensive Operationen ausgeführt wurden.
Gruß
Marco