Wer ist schneller ??? oder warten beide aufeinander ???
Marcus Vieß
- html
0 Tavirp Murof0 Utz0 Oliver Lehmann
Mal ne frage ich habe folgende datei index.html, als redirection.
<HTML>
<HEAD>
<META HTTP-EQUIV="Refresh" content="0;URL=http://www.pbtoys.de/index1.shtml">
</HEAD>
<BODY BGCOLOR="#000000">
<script language=JavaScript>
<!--
document.write('<img src="http://www.pbtoys.de/cgi-bin/toprefferer/refferers.cgi?'+document.referrer+'" width=1 height=1 border=0>');
// -->
</script>
</BODY>
</HTML>
So, mit dem Metatag route ich ja nach index1.shtml.
Und unten startet sich ein statistik cgi.
Das kann ich leider auf der seite index1.shtml nicht starten da sa skript dann als ursprungsseite natürlich die index.html von unserem Server hat und nie was richtiges anzeigt.
Soweit ich das nun verstehe routet das gute Meta Tag weiter. Nun die frage wartet es auf das java script ?
Oder routet es ohne rücksicht auf verluste einfach weiter ? der rest ist dann glückssache ob das cgi schneller ist ?
gruss,
Marcus ...
Hi Marcus
Die META Anweisung wartet darauf, dass die Seite komplett geladen ist. D.h. dass Dein Referrer auf jeden Fall verarbeitet wird.
Gruß
Tavirp
Hi Marcus,
AFAIK ist es nicht standardisiert, ob ein Browser mit er Ausführung eines Meta-Refreshs warten muss, bis die HTML-Datei komplett übertragen wurde, oder nicht. Das hängt also von den Browser-Programmierern hab, kann sich also auch mal ändern. Und selbst wenn der Browser wartete, so wird er bestimmt nicht auch darauf warten können, ob eine Bildreferenz einen Eintrag in den Logfiles macht (bzw. ein CGI-Programm startet und seine Information übergibt).
Mein Vorschlag: geh anders an die Sache ran - übergib den zu protokollierenden Referrer einfach an die Seite index1.shtml und verarbeite ihn erst dort, wo Du nicht mehr durch Weiterleitungen ausgebremst werden kannst.
Hier ein ungetestetes Beispiel (musst Du evtl. noch debuggen):
<html>
<head>
<title>irgendwas</title>
<meta http_equiv="refresh" content="10;URL=http://www.pbtoys.de/index1.shtml">
<script type="text/javascript">
<!--
function weiterleitung()
{
window.name = document.referrer;
location.replace(http://www.pbtoys.de/index1.shtml);
}
//-->
</script>
</head>
<body onLoad="weiterleitung()">
</body>
</html>
Das schreibt den Referrer in den Fenster-Namen und leitet dann zu index1.shtml weiter; ohne JavaScript wird dann nach 10 Sekunden zu index1.shtml weitergeleitet - Du verlierst damit den Referrer, aber den verlierst Du ohne JavaScript ja so oder so.
In index1.shtml notierst Du dann irgendwo:
<script type="text/javascript">
<!--
document.write('<img src="http://www.pbtoys.de/cgi-bin/toprefferer/refferers.cgi?'+window.name+'" width=1 height=1 border=0>');
//-->
</script>
In window.name ist ja der Referrer gespeichert, und damit protokolliert Dein CGI-Programm völlig korrekt den ursprünglichen Referrer.
Ich hoffe, das hilft Dir etwas.
Grüße,
Utz
Hi Marcus, ich habe mal etwas rumprobiert:
1. Variante:
<HTML>
<HEAD>
<META HTTP-EQUIV="Refresh" content="0;URL=test1.html">
<script language=JavaScript>
<!--
document.write('<img src="projekte/gif/output.php3?id=2">');
// -->
</script>
</HEAD>
<BODY BGCOLOR="#000000">
</BODY>
</HTML>
2. Variante:
<HTML>
<HEAD>
<script language=JavaScript>
<!--
document.write('<img src="projekte/gif/output.php3?id=2">');
// -->
</script>
<META HTTP-EQUIV="Refresh" content="0;URL=test1.html">
</HEAD>
<BODY BGCOLOR="#000000">
</BODY>
</HTML>
So, und wenn du uns jetzt evtl. noch ganz genau beschreibst wozu das ganze, bzw. was durch diese index.html erreicht werden soll. Bzw. was du erreichen willst. Laesst sich das Problem(?) bestimmt loesen ;-)
MfG Olli