jQuery递归获取等待结果
jQuery Recursive get wait for result
我正在尝试使用jQuery编写一个递归函数来调用一个发送电子邮件的php文件。电子邮件服务器一次发送10封电子邮件,我希望JS继续发出GET直到数据。已完成==true。
我的代码如下:
function emailDespatchNotification() {
$.get('email.php', function(event) {
if (event.action.status == 'OK') {
if (event.data.Finished != true) {
emailDespatchNotification();
}
}
});
}
JSON结果如下:
{
"log": {"SQL":{"0":"SELECT ...","1":"INSERT INTO ..."},"0":"Cache cleared","Page":"email.php","Script_Time":3.4495},
"data": {"Finished":false},
"action": {"status":"OK"},
"readable": {}
}
当第一次调用emailDespatchNotification()
时,代码的行为就像我希望它向服务器发送一个GET一样,但当返回结果(包含数据。Finished=false)时,JS会不断向服务器发送GET请求,直到我停止它或浏览器报告错误。
我不明白为什么emailDespatchNotification()
被连续调用,因为只有在GET返回值后才应该调用它。我尝试将整个GET嵌套到一个命名函数中,并调用它而不是emailDespatchNotification()
,但没有效果。在使用列表之前,我已经解决了这种问题,但我不知道需要调用服务器多少次,所以列表不合适。我使用的是jQuery 1.8.3,并使用Firebug进行调试。
我相信我已经通过在GET函数中添加种子来解决了这个问题,尽管Cache Control设置为无存储,无缓存,但它正在缓存结果。
调整后的代码如下:
var seed = new Date() / 1;
$.get('beta/email.php', {seed:seed}, function(event) {
通过这种方式,我确保获得页面的实时版本,并且我的代码执行良好。
@Jason p谢谢你的帮助!
相关文章:
- 正在等待HTTP调用从函数返回结果
- 如何等待一个HTML页面并在页面复杂创建时获得结果
- 如何在js中等待if语句内部的结果
- JS GeoLocation:让$.ajax等待结果
- 等待ajax结果绑定淘汰模型
- 等待异步结果的 Chrome 系统调用
- 让 JavaScript 函数等待 Jquery 对话框模态的结果
- 我怎样才能异步执行 JavaScript 代码片段并等待它们的结果
- 我是否需要为每个具有等待结果回调的方法关闭
- 等待异步 Javascript 函数结束检索结果(延迟?)
- 在返回结果之前,我如何等待 jQuery.ajaxComplete in promise.done
- 如何在从 Meteor.method 返回之前等待子进程结果
- 使用'解决'以等待routeProvider中的查询结果
- jQuery递归获取等待结果
- 在所有类型的DOM等待机制中,将AMD javascript计算为库中的非AMD结果是未定义的
- 我怎么能等待谷歌远程呼叫返回我的结果之前继续
- 调用函数并等待结果
- 在执行之前等待链接点击弹出结果
- 等待回调函数的结果之前,另一个回调函数
- JavaScript异步回调-如何等待最终结果