2012-06-17 106 views
0

我正在嘗試創建一個顯示股票報價的窗格,但每隔10秒自動刷新一次,並且系統地進行更改(因此,請說出goog for ten,然後aapl等等。)使用AJAX自動刷新內容

這就是我得到的。

function stocksUpdate(latest){ 
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("stocks").innerHTML=xmlhttp.responseText; 
} 
} 
xmlHttp.open("GET","stock.php?latest="+latest+"&x="+Math.random(),true); 
xmlHttp.send(); 
} 

function stockShow() { 
var symbol = document.getElementById('stocksymbol'); 
setInterval(stocksUpdate(symbol), 15); 
} 
} 

然後

<body onload="stockShow()"> 

<div id="stocks"> 

<h3 id="stocksymbol"></h3> 

所以應該先拿到stocksymbol,看到它的空白,並獲得第一的股票報價,然後在15秒後拿到股票報價並返回下一個等。

stock.php頁面正在運行完美,但沒有顯示。我是否正確啓動?我應該做第一個顯示然後設置setInterval?

注意,H3標籤是故意空,並佔stock.php所以不要擔心,其空

非常感謝。 尼爾

+0

和控制檯說什麼? – Joseph

+0

@ joseph-the-dreamer 這些:Uncaught語法錯誤:Unexpected token <| 未捕獲的SyntaxError:意外的令牌; | 和 未捕獲的ReferenceError:stocksUpdate未定義 不說明它們的兩個語法問題在哪裏 – Niall

回答

3

你應該將它傳遞給setInterval之前

setInterval(function(){ 
    stocksUpdate(symbol); 
}, 15); 

截至目前你正在評估的功能stocksUpdate(符號)取代

setInterval(stocksUpdate(symbol), 15); 

此外,15是以毫秒爲單位的時間,如果您不希望服務器崩潰,請考慮將其提升到更高的級別,而不是使用setInterval(可能導致2個響應按錯誤順序到達)使用一個setTimeout在股票的最後更新函數

+0

非常感謝,對不起,15是一個錯字。再次感謝 – Niall