cooldiman1
Lt. Junior Grade
- Registriert
- Dez. 2011
- Beiträge
- 299
Hallo CB-Freunde,
ich arbeite zurzeit an einem Chat.
Dieser aktualisiert sich momentan immer alle 4 Sekunden.
Das wollte ich jetzt durch Long Polling ersetzen.
Ich denke ich habe verstanden wie es allgemein funktioniert aber nicht wie ich das jetzt umsetze ohne JQuery.
Hier ein paar Quelltextausschnitte:
Ajax Teil:
PHP Teil:
So weiter weiß ich nicht. Bisher habe ich versucht das nach dem erstem Sleep das "Test" ausgeben wird und dann nach dem 2.tem Sleep die Anfrage beendet wird.
Kann mir jemand vielleicht ein kleines Beispiel zeigen oder es selber kurz erstellen. Ich würde das wirklich sehr gerne verwenden da es bestimmt viel eleganter ist anstatt alle 4 Sekunden eine Ajax funktion aufzurufen
Google ist leider irgendwie nicht ganz so hilfreich oder ich suche einfach nach den falschen Begriffen
Gruß,
cooldi
ich arbeite zurzeit an einem Chat.
Dieser aktualisiert sich momentan immer alle 4 Sekunden.
Das wollte ich jetzt durch Long Polling ersetzen.
Ich denke ich habe verstanden wie es allgemein funktioniert aber nicht wie ich das jetzt umsetze ohne JQuery.
Hier ein paar Quelltextausschnitte:
Ajax Teil:
Code:
function reload(chat_id, parameter1, numberofdata, addition1)
{
switch (parameter1)
{
case "chat_overview":
ajax(addition1 , "", "", "check_new_entry", "privat", "", numberofdata); // Checken
break;
case "user_chat":
ajax("" , chat_id, "", "one_chat_reload", "", "", numberofdata);
break;
case "public_chat":
ajax(addition1 , "", "", "check_new_entry", "public", "", numberofdata); // Checken
break;
}
jscheck(1);
setTimeout
(
function()
{
reload("", parameter1, numberofdata, addition1);
}
, 4000);
}
function ajax(username, chat_id, text, parameter, addition1, addition2, numberofdata)
{
var obj;
if (window.XMLHttpRequest)
obj = new XMLHttpRequest();
else
obj = new ActiveXObject("Microsoft.XMLHTTP");
switch (parameter)
{
case "public_chat_reload":
obj.open("POST","ajax_php_functions/public_data_load.php");
var data_params = "chat_id="+chat_id+"&first_call="+first_call+"&numberofdata="+numberofdata+"&last_reload="+last_reload;
break;
}
obj.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
obj.setRequestHeader("Content-length", data_params.length);
obj.setRequestHeader("Connection", "close");
obj.send(data_params);
obj.onreadystatechange = loading_data;
function loading_data()
{
if (obj.readyState!=4)
{
//alert(obj.responseText);
var output = obj.responseText;
document.getElementById("check_4").innerHTML=output;
}
if (obj.readyState==4 && obj.status==200)
{
// Ende
}
}
PHP Teil:
PHP:
sleep(1);
echo "test";
sleep(4);
So weiter weiß ich nicht. Bisher habe ich versucht das nach dem erstem Sleep das "Test" ausgeben wird und dann nach dem 2.tem Sleep die Anfrage beendet wird.
Kann mir jemand vielleicht ein kleines Beispiel zeigen oder es selber kurz erstellen. Ich würde das wirklich sehr gerne verwenden da es bestimmt viel eleganter ist anstatt alle 4 Sekunden eine Ajax funktion aufzurufen
Google ist leider irgendwie nicht ganz so hilfreich oder ich suche einfach nach den falschen Begriffen
Gruß,
cooldi
Zuletzt bearbeitet: