论坛首页 Web前端技术论坛

定时器AJAX请求重帧现象

浏览 10571 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (2) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-05-25  
相当于连续发2次相同url的请求,这也不会有什么问题,顶多你的回调函数调2次而已,难道会出现第二次调用的第一次的数据?你想让两次请求按次序前一个执行完毕再执行下一个可以设置open("post",url,false);
0 请登录后投票
   发表时间:2011-05-25   最后修改:2011-05-25
hyj1254 写道
相当于连续发2次相同url的请求,这也不会有什么问题,顶多你的回调函数调2次而已,难道会出现第二次调用的第一次的数据?你想让两次请求按次序前一个执行完毕再执行下一个可以设置open("post",url,false);

哦 是的 同步执行也行 呵呵

两次相同数据没什么大问题 我说不行主要是因为我需要根据这数据来绘制图,如果我不做处理的画,相同数据画出来的图是不好看的,一眼都能看出来这数据是错的 ,所以需要修改
0 请登录后投票
   发表时间:2011-05-26  

xmlRequest.open("POST", url, true); 
改成
xmlRequest.open("POST",url+="&random="+Math.random(),true);
看看
0 请登录后投票
   发表时间:2011-05-26  
var t_ajax = setTimeout("sendHTTPRequest()",1000);
建议使用 setTimeout方法

url 加上一个 戳。

var d = new Date();
var url = "decodePass?id=" + id + "&sync=" + sync + "&time=" + d.getTime();

应该就可以了
0 请登录后投票
   发表时间:2011-05-29  
你这个问题应该是同步异步的问题,ajax默认是异步的,没有等到你这次的返回下一次又开始请求了,可能一下子得到2个的结果。你尝试下设置为同步。就是这次等到结果了,才触发下一次的轮训就好了
0 请登录后投票
   发表时间:2011-05-30   最后修改:2011-05-30
lz加个状态位 不就解决了么??

sendHTTPRequest(){
  if(window.reqstate) return;
 
  // 执行你的代码
 
  window.reqstate = true;

}

# function isDataExists() { 
#     if (xmlRequest.readyState == 4) { 
#         if (xmlRequest.status == 200) { window.reqstate = false;
   

我看了后面的回复 都在讲 怎么处理 服务端的数据 ... 我很不能理解

问题我感觉 就在一点  ajax 重复请求资源 就是 客户端向服务器的请求数 ++

这个和后端 有什么关系呢... 只要限定 客户端向服务器发送请求 不就可以了么???

加个状态位 完全可以抑止 HTTP请求啊
0 请登录后投票
   发表时间:2011-05-30  
silence1214 写道
你这个问题应该是同步异步的问题,ajax默认是异步的,没有等到你这次的返回下一次又开始请求了,可能一下子得到2个的结果。你尝试下设置为同步。就是这次等到结果了,才触发下一次的轮训就好了

我同时用了同步,setTimeout 恩 好了 基本上没有这个问题了!
0 请登录后投票
   发表时间:2011-05-30  
vb2005xu 写道
lz加个状态位 不就解决了么??

sendHTTPRequest(){
  if(window.reqstate) return;
 
  // 执行你的代码
 
  window.reqstate = true;

}

# function isDataExists() { 
#     if (xmlRequest.readyState == 4) { 
#         if (xmlRequest.status == 200) { window.reqstate = false;
   

我看了后面的回复 都在讲 怎么处理 服务端的数据 ... 我很不能理解

问题我感觉 就在一点  ajax 重复请求资源 就是 客户端向服务器的请求数 ++

这个和后端 有什么关系呢... 只要限定 客户端向服务器发送请求 不就可以了么???

加个状态位 完全可以抑止 HTTP请求啊

这个应给也可以,不过我没试,我用了同步 就差不多了 意思都是这样 ,让这一条请求结束之后再进行下一条、、
0 请登录后投票
   发表时间:2011-05-31  
奥义之舞 写道
silence1214 写道
你这个问题应该是同步异步的问题,ajax默认是异步的,没有等到你这次的返回下一次又开始请求了,可能一下子得到2个的结果。你尝试下设置为同步。就是这次等到结果了,才触发下一次的轮训就好了

我同时用了同步,setTimeout 恩 好了 基本上没有这个问题了!


要感谢我下撒
0 请登录后投票
   发表时间:2011-05-31  
silence1214 写道
奥义之舞 写道
silence1214 写道
你这个问题应该是同步异步的问题,ajax默认是异步的,没有等到你这次的返回下一次又开始请求了,可能一下子得到2个的结果。你尝试下设置为同步。就是这次等到结果了,才触发下一次的轮训就好了

我同时用了同步,setTimeout 恩 好了 基本上没有这个问题了!


要感谢我下撒

    
所有提过意见的 都感谢
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics