Come utilizzare setInterval per ripetere le chiamate Ajax dalla stessa pagina Ajax?
-
12-11-2019 - |
Domanda
L'ho salvato come file Ajax.js:
function sendAjax(type, str)
{
var xmlhttp;
if (str=="")
{
document.getElementById("txtResp").innerHTML="";
return;
}
if (window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
else
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("txtResp").innerHTML=xmlhttp.responseText;
}
}
switch(type)
{
case 'search':
xmlhttp.open('GET','mysql_process_search.php?q='+str,true);
break;
case 'add':
xmlhttp.open("GET","mysql_process_event.php?q="+str,true);
break;
}
xmlhttp.send();
}
Fondamentalmente, sto cercando di utilizzare la funzione SetInterval () integrata per ripetere qualsiasi variabile URL contenga.
In un certo senso, ho bisogno di questo per eseguire ogni 5 secondi dopo il suo tfunction Sendajax (tipo, STR) è chiamato (come in Write):
case 'add':
xmlhttp.open("GET","mysql_process_event.php?q="+str,true);
break;
}
xmlhttp.send();
Potrei semplicemente impostare dove scrivo la funzione su un intervallo: cioè
setInterval( "sendAjax('message', '123')", 5000 );
sendAjax('message','123')
Ma ho diversi, diversi posti in tutto il mio codice in cui questa funzione è scritta e questo non funzionerà se è contenuta in un'azione chiave e l'istruzione IF perché eseguirà solo una volta:
$('#searchbar').live('keyup',function() {
eInput = $(this).val();
if (eInput.length > 1) {
setInterval( "sendAjax('message', '123')", 5000 );
sendAjax('message','123')
}
});
// Questa funzione non funziona.
Se qualcuno può aiutarmi a correggere l'ultima funzione o semplicemente per includere il setInterval all'interno del file Ajax.js stesso, lo apprezzerei molto.
Saluti, Taylor
Nessuna soluzione corretta