Felix Riesterer: Usertracking Browser Back history.back() reload

Beitrag lesen

Lieber Johannes,

Theoretisch müsste es ja so funktionieren: Wenn der User den Back-Button nutzt, wird eine Funktion aufgerufen, die zu einem reload der Seite führt.

warum muss es ein Reload sein? Reicht es Dir nicht, wenn per Javascript eine gefakte Javascript-Datei eingebunden werden soll (oder von mir aus ein neues Bild), wobei über den Request wesentliche Daten an den Server geschickt werden?

Denkansatz (alles ungetestet):

  
function init() {  
   // Beginn des Besuches dem document-Objekt anhängen  
   document.myStartTime = new Date();  
}  
  
function track_me () {  
   var usertime = new Date();  
   usertime -= document.myStartTime; // Differenz = Aufenthaltsdauer in Millisekunden  
  
   var url = document.location;  
  
   var requestString = "http://www.example.org/tracker/request.php?url=";  
   requestString += url;  
   requestString += "&usertime=" + usertime;  
  
   // Die Bild-Variante  
   var dummy_img = new Image();  
   dummy_img.src = requestString;  
  
   // Die JS-Variante  
   var dummy_js = document.createElement("script");  
   dummy_js.href = requestString;  
   dummy_js.type = "text/javascript";  
   document.body.insertBefore(dummy_js, document.body.firstChild);  
  
   return;  
}

Javascript fordert onUnLoad eine Datei an, die folgenden Dateinamen haben könnte: "http://www.example.org/tracker/request.php?url=http://xyz.example.org/page.htm&usertime=1432" an. Das Script "request.php" sendet eine passende Datei zurück (spacer.gif oder eine dummy.js - jenachdem wie Du es implementierst), speichert aber für sich die übermittelten Daten (url und usertime) ab.

Und jetzt kommt das Schönste: Ohne Javascript beim User ist alles umsonst. :-)

Liebe Grüße aus Ellwangen,

Felix Riesterer.