Verwenden von AJAX, um Änderungen zu überprüfen und nur Aktualisierungen vorzunehmen, wenn Änderungen eingetreten sindPhp

PHP-Programmierer chatten hier
Anonymous
 Verwenden von AJAX, um Änderungen zu überprüfen und nur Aktualisierungen vorzunehmen, wenn Änderungen eingetreten sind

Post by Anonymous »

Derzeit habe ich eine Umfrage auf einer Website durchgeführt, an der ich arbeite. Die Umfrage muss viel geändert/zurücksetzen und auf mehreren Seiten eingebettet werden. Es gibt eine Administratorschnittstelle, mit der der Administrator das Umfragethema und die Umfrage ändern kann. Wenn der Administrator nun die Umfrage ändert, wird eine Datei auf dem Server von 0 auf 1 oder 1 auf 0 wie folgt geändert: < /p>

Code: Select all

$filename = "check";
$content = file_get_contents($filename, true);

if($content == 1) { $content = 0; }

else{ $content = 1; }

file_put_contents($filename, $content);
Die Seiten, auf denen die Umfrage eingebettet ist, verwendet dann AJAX, um diese Datei alle 5 Sekunden auf Änderungen zu überprüfen.function getPoll()
{
$('#pollo').show();
document.getElementById("poll").innerHTML="
Image
";
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("poll").innerHTML=xmlhttp.responseText;
if(document.getElementById("pollcheck").innerHTML=="")
{
$('#pollo').hide();
}
}
}
xmlhttp.open("GET","/poll/index2.html",true);
xmlhttp.send(null);

}

function checkpoll()
{
if (window.XMLHttpRequest)
{
xml=new XMLHttpRequest();
}
else
{
xml=new ActiveXObject("Microsoft.XMLHTTP");
}
xml.onreadystatechange=function()
{
if (xml.readyState==4 && xml.status==200)
{
check = xml.responseText;
}
}
xml.open("GET","../poll/check",true);
xml.send(null);
}

$(document).ready(function(){
//upon loading the page, get the current poll, and set the initial value of check and pcheck
getPoll();
checkpoll();
pcheck = check;
}

setInterval(function(){
//check the check page every 5 seconds, if check isn't set, set it, if check isn't equal to pcheck, grab the new poll
try{
checkpoll();
if(check == "")
{
checkpoll();
}

if(check != pcheck)
{
getPoll();
pcheck = check;
}
}

catch(Exception){
alert("ERROR, try refreshing");
}

},5000)
< /code>
Nun, dies scheint ziemlich gut zu funktionieren, aber ich weiß, dass es eine bessere Methode geben muss, um Änderungen auf einem Server auf einem Server zu überprüfen, mit XML -Anforderungsaufrufen jede x -Menge von Sekunden. Wenn die XML -Anfrage fehlschlägt, kann sie manchmal den Updater zusammenbrechen. http://lodeclaw.ardentforge.net/ Dies ist die Website, auf der die Umfrage derzeit ausgeführt wird.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post