Я сохранил это как файл 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();
}
По сути, я пытаюсь использовать встроенную функцию setInterval (), чтобы повторять любые переменные URL.
В каком-то смысле мне нужно, чтобы это выполнялось каждые 5 секунд после вызова функции sendAjax (type, str) (как в write):
case 'add':
xmlhttp.open("GET","mysql_process_event.php?q="+str,true);
break;
}
xmlhttp.send();
Я мог бы просто установить, где я пишу функцию на интервале: I.E.
setInterval( "sendAjax('message', '123')", 5000 );
sendAjax('message','123')
Но в моем коде есть несколько мест, где эта функция записывается, и это не будет работать, если оно содержится в ключевом действии и в операторе if, потому что оно будет выполняться только один раз:
$('#searchbar').live('keyup',function() {
eInput = $(this).val();
if (eInput.length > 1) {
setInterval( "sendAjax('message', '123')", 5000 );
sendAjax('message','123')
}
});
// Эта функция не работает.
Если кто-то может помочь мне исправить последнюю функцию или просто включить setInterval в сам файл Ajax.js, я был бы очень признателен.
С уважением,
Taylor