Hallo zusammen,
ich versuche gearade mit meinen kaum vorhandenen Ajax-Kenntnissen eine "Wer ist online"-Funktion zu realisieren...Ich dachte mir, das es doch möglich sein müsste beim schliessen eines Tabs oder des ganzen Browserfensters nochmal eine Ajaxfunktion anzustossen die dann ein PHP-Script aufruft in dem dann einfach in der DB der onlinestatus geändert wird...
Eine letzte Aktion kann man ja mit onUnload oder onBeforeUnload erreichen..
Mein Script bringt mir aber in der Firefox Fehlerkonsole einen ziemlich wirren Fehler :
Fehler: uncaught exception: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIDOMWindowInternal.alert]"
nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame ::
http://localhost/svo/Scripts/onlineStatus.js :: anonymous :: line 34" data: no]
Mein Ajaxscript:
Wenn ich diesen Teil der Status-Überprüfung weglasse, bekomme ich den Fehler nicht mehr, aber es passiert auch nichts weiter...
Ist mein Vorhaben eigentlich möglich oder brechen alle Script-Verarbeitungen beim schliessen sofort ab? Ich meine PHP ist ja serverseitg und es gelingt mir ja den Request zu erstellen und abzusenden...müsste dann doch eigentlich auch ausgeführt werden ?
Danke für euere Hilfe !!
LG
ich versuche gearade mit meinen kaum vorhandenen Ajax-Kenntnissen eine "Wer ist online"-Funktion zu realisieren...Ich dachte mir, das es doch möglich sein müsste beim schliessen eines Tabs oder des ganzen Browserfensters nochmal eine Ajaxfunktion anzustossen die dann ein PHP-Script aufruft in dem dann einfach in der DB der onlinestatus geändert wird...
Eine letzte Aktion kann man ja mit onUnload oder onBeforeUnload erreichen..
Mein Script bringt mir aber in der Firefox Fehlerkonsole einen ziemlich wirren Fehler :
Fehler: uncaught exception: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIDOMWindowInternal.alert]"
nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame ::
http://localhost/svo/Scripts/onlineStatus.js :: anonymous :: line 34" data: no]
Mein Ajaxscript:
HTML-Code:
function setOnlineStatus(ostatus){ //erstellen des requests var req = null; try{ req = new XMLHttpRequest(); } catch (ms){ try{ req = new ActiveXObject("Msxml2.XMLHTTP"); } catch (nonms){ try{ req = new ActiveXObject("Microsoft.XMLHTTP"); } catch (failed){ req = null; } } } if (req == null) alert("Error creating request object!"); //anfrage erstellen (GET, url ist localhost, //request ist asynchron req.open("GET", '/svo/setOnlineStatus.php?s='+ostatus, true); //Beim abschliessen des request wird diese Funktion ausgeführt req.onreadystatechange = function(){ switch(req.readyState) { case 4: if(req.status!=200) { alert("Fehler:"+req.status); }else{ //alles gut... } break; default: return false; break; } }; req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); req.send(null); }
HTML-Code:
//Beim abschliessen des request wird diese Funktion ausgeführt req.onreadystatechange = function(){ switch(req.readyState) { case 4: if(req.status!=200) { alert("Fehler:"+req.status); }else{ //alles gut... } break; default: return false; break; } };
Danke für euere Hilfe !!
LG
Kommentar