2011-06-10 55 views
0

如何使用ajax自動刷新頁面的一部分,而無需在JavaScript內手動調用函數?

var xmlhttp; 

//Set up ajax first so he knows which guy to play with 
function loadXMLDoc(url,cfunc) 
{ 
    //Code to catch modern browsers 
    if (window.XMLHttpRequest) 
    { 
     xmlhttp=new XMLHttpRequest(); 
    } 

    //Code to catch crap browsers 
    else 
    { 
     xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 

    //Set up 
    xmlhttp.onreadystatechange=cfunc; 
    xmlhttp.open("GET",url,true); 
    xmlhttp.send(); 
} 

//Set a function to deploy when something calls myFunction() 
function myFunction() 
{ 
    loadXMLDoc("../../../support/ajaxTest.txt",function() 
    { 
     //Fires off when button pressed 
     if (xmlhttp.readyState==4 && xmlhttp.status==200) 
     { 
      document.getElementById("statusRefresh").innerHTML=xmlhttp.responseText; 
      setInterval("alert('Hello I did something but i needed to be invoked by a button first')", 5000); 
     } 

    }); 
} 

我想打電話給寧靜的Java服務刷新 '狀態'。一旦頁面被擊中,我需要ajax來自動刷新這個狀態。刷新方法不是即時的,因爲它必須與其他機器交談。

回答

2
function autoRefresh() 
{ 
    var url = "../../../support/ajaxTest.txt"; 
    var target = document.getElementById("statusRefresh"); 

    var doRefresh = function() 
    { 
     loadXMLDoc(url, function() 
     { 
      if (xmlhttp.readyState==4 && xmlhttp.status==200) 
      { 
       target.innerHTML=xmlhttp.responseText; 
      } 
     } 
    }); 

    setInterval(doRefresh, 5000); 
} 

document.onload = autoRefresh; 
+0

那麼實際上會觸發autoRefresh?只需添加document.onload = autoRefresh;在JavaScript範圍內會做到這一點? – stackoverflow 2011-06-10 16:47:27

0

需要更多的信息,比如你的目標是什麼,你目前有什麼......你在做什麼......如果它的腳本是由某個用戶查看網頁,或點擊一個按鈕,然後使用該按鈕triiger功能自動刷新

另一種方法是使用crob工作

+0

如果你在談論「cronjob」(不是「crob job」 '=)'),這是不正確的。 cronjob是一個服務器進程,它不會影響客戶端(「刷新」會發生)。 – Rudie 2011-06-10 16:27:22

+0

應該是一個評論imo。 – 2011-06-10 16:29:26

相關問題