gpt4 book ai didi

javascript - 在 JavaScript 中每 10 秒发送一次 xmlHttpRequest

转载 作者:行者123 更新时间:2023-11-30 08:14:16 25 4
gpt4 key购买 nike

我运行一个 JavaScript 函数,将 xmlHttpRequest 发送到 .ashx(我们将其命名为 send_req(),它在页面加载时运行第一次)。对于 onreadystatechange,我有一个接收 XML 数据并将其显示在页面上的函数(我们将其命名为 getanswer())。

我想每 20 秒自动更新页面上的 XML 数据。为此,我在 writexml() 的末尾使用了 setTimeout(send_req(),20000),但它不会更新页面上的数据。我在代码的 **** 行添加了一个 alert()。它每隔一秒在页面上显示一次!

如果我在没有 setTimeout 的情况下使用它,我的代码可以正常工作。

这是我的代码

var Population = "";
var Available_money = "";
var resource_timer;
var httpReq_resource;

function send_req() {
if (window.ActiveXObject) {
httpReq_resource = new ActiveXObject("Microsoft.XMLHTTP");
}
else if (window.XMLHttpRequest) {
httpReq_resource = new XMLHttpRequest();
}

var sendStr = "user_id=1";
if (httpReq_resource)
{
httpReq_resource.onreadystatechange = getanswer;
httpReq_resource.open("POST", "Answer_Resource_change.ashx");
httpReq_resource.send(sendStr);
}
}

function getanswer() {
var results = httpReq_resource.responseXML;
if (httpReq_resource.readyState == 4) {
if (httpReq_resource.status == 200) {
try {
var value;
var values = results.getElementsByTagName("values");
for (var i = 0; i < values.length; i++) {

value = values[i];
Population = value.getElementsByTagName("Population")[0].firstChild.nodeValue;
Available_money = value.getElementsByTagName("Available_money")[0].firstChild.nodeValue;
... and some more like two line up
}

make_changes();
**********************************
resource_timer = setTimeout(send_req(), 20000);

}
catch (e) {
}
}
}
}

function make_changes() {
$("li span#l1").text(Available_money + '/' + Population);
...and some more like up line
}

最佳答案

这个:

resource_timer = setTimeout(send_req(), 20000);

应该是:

resource_timer = setTimeout(send_req, 20000);

第一个在 20 秒后执行 send_req()结果,第二个执行 send_req 本身。

关于javascript - 在 JavaScript 中每 10 秒发送一次 xmlHttpRequest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6264913/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com