锁定老帖子 主题:定时器AJAX请求重帧现象
精华帖 (0) :: 良好帖 (0) :: 新手帖 (2) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-05-25
相当于连续发2次相同url的请求,这也不会有什么问题,顶多你的回调函数调2次而已,难道会出现第二次调用的第一次的数据?你想让两次请求按次序前一个执行完毕再执行下一个可以设置open("post",url,false);
|
|
返回顶楼 | |
发表时间:2011-05-25
最后修改:2011-05-25
hyj1254 写道 相当于连续发2次相同url的请求,这也不会有什么问题,顶多你的回调函数调2次而已,难道会出现第二次调用的第一次的数据?你想让两次请求按次序前一个执行完毕再执行下一个可以设置open("post",url,false);
哦 是的 同步执行也行 呵呵 两次相同数据没什么大问题 我说不行主要是因为我需要根据这数据来绘制图,如果我不做处理的画,相同数据画出来的图是不好看的,一眼都能看出来这数据是错的 ,所以需要修改 |
|
返回顶楼 | |
发表时间:2011-05-26
将
xmlRequest.open("POST", url, true); 改成 xmlRequest.open("POST",url+="&random="+Math.random(),true); 看看 |
|
返回顶楼 | |
发表时间: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(); 应该就可以了 |
|
返回顶楼 | |
发表时间:2011-05-29
你这个问题应该是同步异步的问题,ajax默认是异步的,没有等到你这次的返回下一次又开始请求了,可能一下子得到2个的结果。你尝试下设置为同步。就是这次等到结果了,才触发下一次的轮训就好了
|
|
返回顶楼 | |
发表时间: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请求啊 |
|
返回顶楼 | |
发表时间:2011-05-30
silence1214 写道 你这个问题应该是同步异步的问题,ajax默认是异步的,没有等到你这次的返回下一次又开始请求了,可能一下子得到2个的结果。你尝试下设置为同步。就是这次等到结果了,才触发下一次的轮训就好了
我同时用了同步,setTimeout 恩 好了 基本上没有这个问题了! |
|
返回顶楼 | |
发表时间: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请求啊 这个应给也可以,不过我没试,我用了同步 就差不多了 意思都是这样 ,让这一条请求结束之后再进行下一条、、 |
|
返回顶楼 | |
发表时间:2011-05-31
奥义之舞 写道 silence1214 写道 你这个问题应该是同步异步的问题,ajax默认是异步的,没有等到你这次的返回下一次又开始请求了,可能一下子得到2个的结果。你尝试下设置为同步。就是这次等到结果了,才触发下一次的轮训就好了
我同时用了同步,setTimeout 恩 好了 基本上没有这个问题了! 要感谢我下撒 |
|
返回顶楼 | |
发表时间:2011-05-31
silence1214 写道 奥义之舞 写道 silence1214 写道 你这个问题应该是同步异步的问题,ajax默认是异步的,没有等到你这次的返回下一次又开始请求了,可能一下子得到2个的结果。你尝试下设置为同步。就是这次等到结果了,才触发下一次的轮训就好了
我同时用了同步,setTimeout 恩 好了 基本上没有这个问题了! 要感谢我下撒 所有提过意见的 都感谢 |
|
返回顶楼 | |