2011-04-05 44 views
0

我希望能夠每2分鐘刷新一次頁面,以便隨後運行PHP文件,以便重新填充數據表。我已閱讀setTimeout()可以用來做到這一點,但我不知道如何做到這一點。任何人都有任何示例代碼?AJAX定時MySQL刷新

<script type="text/javascript"> 
function showSellers(isbn) 
{ 
    //if there is no isbn given, show nothing and return nothing 
    if (isbn=="") 
    { 
     document.getElementById("sellers").innerHTML=""; 
     return; 
    } 
    //AJAX request for IE7+, Firefox, Chrome, Opera, Safari 
    if (window.XMLHttpRequest) 
    { 
     xmlhttp=new XMLHttpRequest(); 
    } 
    //AJAX request for IE6, IE5 
    else 
    { 
     xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
    //if the state of the page changes, do this 
    xmlhttp.onreadystatechange=function() 
    { 
     if (xmlhttp.readyState==4 && xmlhttp.status==200) 
     { 
      document.getElementById("sellers").innerHTML=xmlhttp.responseText; 
     } 
    } 
    xmlhttp.open("GET","ajax_seller.php?isbn="+isbn,true); 
    xmlhttp.send(); 
} 
</script> 
+1

只是一個提示,你將能夠減少你的代碼大小約5行與jQuery。 – 2011-04-05 15:47:20

+0

如何?基本上我想刷新一個包含2分鐘間隔的表的div。我看到的所有示例都需要一個觸發器,例如按下按鈕才能起作用... – 2011-04-09 01:22:50

回答

1

如果你想定期做,你可以使用setInterval;

setInterval(function(){ showSellers("my_isbn"); }, 120000); 

您可以對isbn使用全局變量;

globalISBN = "123456"; 
setInterval(function(){ showSellers(globalISBN); }, 120000); 

檢索GET參數;

function getParameter(name) 
{ 
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&'); 

    for(var i = 0; i < hashes.length; i++) 
    { 
     var hash = hashes[i].split('='); 
     if(hash[0] == name) 
     { 
      return hash[1]; 
     } 
    } 

    return null; 
} 

setInterval(function(){ showSellers(getParameter("isbn")); }, 120000); 
+0

setInterval(「showSellers('my_isbn')」,5000);應該夠了。 – Rufinus 2011-04-05 14:40:11

+0

你從哪裏得到my_isbn? – 2011-04-05 14:45:43

+0

你想從哪裏得到my_isbn? – Thys 2011-04-05 14:54:50