我正在尝试创建一个显示股票行情的窗格,但它每10秒自动刷新一次,并且会有系统地更改(所以假设goog为10,然后是aapl,依此类推)。
这就是我得到的。
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>因此,它应该首先获取股票代码,查看其是否为空并获取第一个股票报价,然后15秒后获取该股票报价并返回下一个股票报价,依此类推。
stock.php页面工作正常,但没有显示任何内容。我是否正确启动此操作??我应该先做第一个节目然后再设置setInterval吗?
请注意,h3标记故意为空,并在stock.php中进行了说明,因此不必担心其为空
非常感谢。尼尔尔
发布于 2012-06-17 22:09:41
你应该替换掉
setInterval(stocksUpdate(symbol), 15);使用
setInterval(function(){
stocksUpdate(symbol);
}, 15);现在,在将函数传递给setInterval之前,您正在对函数stocksUpdate(symbol)求值。
此外,15是以毫秒为单位的时间,如果您不想让服务器崩溃,请考虑将其提高到更高的值,并且可能不使用setInterval (这可能导致2个响应以错误的顺序到达),而是在stocksUpdate函数的末尾使用setTimeout
https://stackoverflow.com/questions/11071865
复制相似问题