在JavaScript中每10秒发送一次xmlHttpRequest
我运行了一个JavaScript函数,将在JavaScript中每10秒发送一次xmlHttpRequest,javascript,xmlhttprequest,Javascript,Xmlhttprequest,我运行了一个JavaScript函数,将xmlHttpRequest发送到.ashx(我们将其命名为send_req(),它第一次在页面加载时运行)。对于onreadystatechange,我有一个函数,可以接收XML数据并将其显示在页面上(我们将此函数命名为getanswer()) 我希望每20秒自动更新页面上的XML数据。为此,我在writexml()的末尾使用了setTimeout(send_req(),20000),但它不会更新页面上的数据。我在代码中的***行添加了一个警报()。它每
xmlHttpRequest
发送到.ashx
(我们将其命名为send_req()
,它第一次在页面加载时运行)。对于onreadystatechange
,我有一个函数,可以接收XML数据并将其显示在页面上(我们将此函数命名为getanswer()
)
我希望每20秒自动更新页面上的XML数据。为此,我在writexml()
的末尾使用了setTimeout(send_req(),20000)
,但它不会更新页面上的数据。我在代码中的***
行添加了一个警报()。它每隔一秒钟就会显示在页面上
如果不使用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
}
var Population=”“;
var可用金额=”;
var资源定时器;
var-httpReq_资源;
函数send_req(){
if(window.ActiveXObject){
httpReq_resource=新的ActiveXObject(“Microsoft.XMLHTTP”);
}
else if(window.XMLHttpRequest){
httpReq_resource=new-XMLHttpRequest();
}
var sendStr=“user\u id=1”;
if(httpReq_资源)
{
httpReq_resource.onreadystatechange=getanswer;
httpReq_resource.open(“POST”、“Answer_resource_change.ashx”);
httpReq_resource.send(sendStr);
}
}
函数getanswer(){
var results=httpReq_resource.responseXML;
if(httpReq_resource.readyState==4){
如果(httpReq_resource.status==200){
试一试{
var值;
var values=results.getElementsByTagName(“值”);
对于(变量i=0;i
这是:
resource_timer = setTimeout(send_req(), 20000);
应该是:
resource_timer = setTimeout(send_req, 20000);
第一个执行send_req()
的结果,20秒后,第二个执行send_req
本身。
应该是:
resource_timer = setTimeout(send_req, 20000);
第一个在20秒后执行send_req()
的结果,第二个执行send_req
本身。等待,每10秒(标题)或每20秒(文本)?@passcod对不起,我的错了。每20秒一次,每10秒一次(标题)或每20秒一次(文字)?@passcod对不起,我的错。每隔20秒,你可以解释一下发送请求的结果。
你的意思是什么。发送请求()
返回?是的,我说的“结果”是指发送请求()的“返回值”。你能解释一下发送请求()的结果吗。你的意思是什么。发送请求()
返回吗?是的,我说的“结果”是指发送请求()的“返回值”。