首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用AJAX自动刷新内容

使用AJAX自动刷新内容
EN

Stack Overflow用户
提问于 2012-06-17 22:04:06
回答 1查看 540关注 0票数 0

我正在尝试创建一个显示股票行情的窗格,但它每10秒自动刷新一次,并且会有系统地更改(所以假设goog为10,然后是aapl,依此类推)。

这就是我得到的。

代码语言:javascript
复制
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);
 }
}   

然后

代码语言:javascript
复制
<body onload="stockShow()">

<div id="stocks">

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

因此,它应该首先获取股票代码,查看其是否为空并获取第一个股票报价,然后15秒后获取该股票报价并返回下一个股票报价,依此类推。

stock.php页面工作正常,但没有显示任何内容。我是否正确启动此操作??我应该先做第一个节目然后再设置setInterval吗?

请注意,h3标记故意为空,并在stock.php中进行了说明,因此不必担心其为空

非常感谢。尼尔尔

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-17 22:09:41

你应该替换掉

代码语言:javascript
复制
setInterval(stocksUpdate(symbol), 15);

使用

代码语言:javascript
复制
setInterval(function(){
    stocksUpdate(symbol);
}, 15);

现在,在将函数传递给setInterval之前,您正在对函数stocksUpdate(symbol)求值。

此外,15是以毫秒为单位的时间,如果您不想让服务器崩溃,请考虑将其提高到更高的值,并且可能不使用setInterval (这可能导致2个响应以错误的顺序到达),而是在stocksUpdate函数的末尾使用setTimeout

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11071865

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档