我运行名为像checker每60秒这样的函数调用:多AJAX而不阻断

setInterval(checker, 60 * 1000);

checker具有它通过AJAX检查URL的阵列,当前码是这样的:

$.ajax({

url: sites[i].url,

type: "GET",

dataType: "json",

async: false,

success: function(data){

//blah blah blah

}else{

//something else

},

error: function(){

//blah blah blah

}

});

代码工作,根据JSON的结果改变一些基于UI的东西。我的问题是,检查多个站点的执行时间约为4秒,此时该页面此时无响应。如果我删除async: false代码不再按预期工作。

有人提到使用回调来解决问题,但不明白如何在这种情况下使用它们。

编辑 从adosan根据建议

更新代码:

function promtest(){

var sites = [

{ name: "WorkingSite", url: "http://sitename.com/testing.php" },

//a bunch more sites, 1 returns a 404 to test for failure

{ name: "404Site", url: "http://404url.com/testing.php" }

];

var promiseList = [];

for(var i in sites){

var promise = $.ajax({

url: sites[i].url,

type: "GET",

dataType: "json",

async: true,

success: function(data){

if(data.Response != 'OK'){

console.log('Site ' + sites[i].name + ' Not OK');

}else{

console.log('Site ' + sites[i].name + ' OK ');

}

},

failure: function(data){

console.log('Failure for site: ' + sites[i].name);

},

error: function(){

console.log('Site ' + sites[i].name + ' Not OK');

}

});

promiseList.push(promise);

}

$.when.apply($, promiseList).then(function(){console.log('success')}, function(){console.log('fail')});

}

在控制台中我看到:

Site 404Site Not OK

Site 404Site Not OK

Site 404Site Not OK

Site 404Site Not OK

Site 404Site Not OK

Site 404Site Not OK

Site 404Site Not OK

fail

Site 404Site Not OK

Site 404Site Not OK

Site 404Site Not OK

Site 404Site Not OK

注意,网站名称是始终显示为最后一个在名单上。

+0

请详细说明一下,当你删除异步什么是不工作:假的设置。 –

+0

你有没有考虑过异步运行(''async:true'')? –

+0

我不认为上面的代码真的有效...... * else *在函数之外。 –

ajax请求阻断,多AJAX而不阻断相关推荐

  1. ajax请求 拦截窗口,ajax请求成功后新开窗口window.open()被拦截解决方法

    ajax请求成功后新开窗口window.open()被拦截解决方法 问题: 前面开发项目时碰到一个问题,ajax 异步请求成功后需要新开窗口打开 url,使用的是 window.open() 方法,但 ...

  2. ajax请求时cookie,ajax跨域请求中的cookie问题

    update 另一个问题 ajax在进行复杂请求如PUT,POST,DELETE等时,当请求为cross domain request是,会先发一个OPTIONS请求确认服务器的跨域支持情况,在发送原 ...

  3. c mvc ajax请求,springMVC的ajax请求

    关于spring MVC 的ajax请求 今天在使用spring MVC 的时候遇到了一个ajax请求的问题. 我的后台方法是 @RequestMapping("/XXXX/{XXX}&qu ...

  4. html 中ajax 请求没反应,ajax请求数据成功,页面的数据没有加载出来

    w3c的ajax的例子,点击按钮,(ajax请求读取一个本地ajax.txt文件)页面展示其内容, 在chrome中打开页面,点击按钮请求成功,但是页面没有显示ajax.txt的内容,这是为什么呢? ...

  5. ajax请求的步骤,ajax请求的五个步骤

    ajax请求的五个步骤 第一步,创建XMLHttpRequest对象 第二步,注册回调函数 第三步,配置请求信息,open(),get 第四步,发送请求,post请求下,要传递的参数放这 第五步,创建 ...

  6. ajax请求使用utf-8,Ajax,请求标头UTF-8到ISO字符集[重复]

    这个问题在这里已有答案: 我有一个编码iso-8959-9的页面 . 我将ajax请求发送到同一页面,同时将一些数据保存到DB . 但它将角色转换为utf-8 . 我的响应 Headers 似乎很好用 ...

  7. ajax请求队列,使AJAX队列稍后解析请求

    它确实显示您的信息流不正确.您只需不能作出"第一个"AJAX请求,直到第二个完成并分配了ID. 在本质上,你只需要的是等待被提交标签本地列表: var tags = []; 和办法 ...

  8. java中使用ajax请求数据格式化,ajax请求服务器返回json数据格式化

    JQuery--实现Ajax应用 实现Ajax应用 1   .load()异步请求数据,通过Ajax请求加载服务器中的数据,并把返回的数据放置到指定的元素中,调用格式为load(url,[data], ...

  9. ajax请求type种类,ajax配置项中的type与method

    1. jQuery中ajax配置项中的使用type与method的区别 本质上两个配置项是没有区别的,区别在于两者出现的时间不同,type对于目前jQuery的版本全部兼容,也就是说 $.ajax({ ...

  10. ajax请求设置同步,ajax 设置同步

    这个问题总是碰见,但是又总是记不住怎么拼写,这次直接写出来,长期保存. Ajax请求默认的都是异步的 如果想同步 async设置为false就可以(默认是true) 例如: $.ajax({ url: ...

最新文章

  1. 【Git】ubuntu安装git
  2. 下面不属于python第三方库的安装方法的是-Python第三方库安装和卸载
  3. C++Strand Sort链排序的实现算法(附完整源码)
  4. 医生为什么总是说生理性玻璃体混浊不用治
  5. oracle12 pl/sql
  6. cacti安装后修改说明
  7. 重新配对_国羽世界冠军组合重新配对!男方笑言“老夫老妻”,没什么感觉
  8. python模块的分类有哪些_整理了一份清单,常见Python问题的快速解答包
  9. Cmdbuilding搭建简易流程及问题处理
  10. 树莓派 安装谷歌拼音输入法(树莓派官方版系统、基于Debian)
  11. Android+8.0+微信表情,微信8.0版本重大更新!emoji表情包动态化,安卓版也可以下载了...
  12. java mp3转g722_(转载)wav文件转成g722, g729编码的文件
  13. 4K显示器在M1上打开HiDPI
  14. 万豪酒店品牌持续拓展中国东南区,温州首家万豪酒店开业
  15. Python concurrent.futures 的 map 函数解释
  16. single-shot detection(SSD)目标检测算法详解——(一看就懂系列!!!)
  17. 今天早上跑通了 PF-AFN!
  18. 媒体该如何展示事实之美?
  19. Linux学习(十四)——scp远程拷贝
  20. Build Your Own Angularjs 读书笔记(AngularJS牛逼的地方在于它内嵌了一个表达式到Function对象的编译器。。。当然还有DI框架)

热门文章

  1. 解决VS2019提示源代码的内容和内置源代码的内容不一致
  2. 常见的数据库错误的解决方法!必看!(含安装插件常见错误)
  3. CCPC-Wannafly Camp #4 电音之王 【O(1)快速乘法】
  4. 玉米社:抖音短视频KOL是什么意思?抖音KOL推广有用吗?
  5. emacs .emacs_使用Emacs修改您的Git存储库,并获得Griffon 0.9发行说明的先睹为快
  6. 变频串联谐振如何正确的做交流耐压试验你知道吗?
  7. cannot start service 由于登录失败而无法启动服务
  8. 同样是荣耀旗舰手机,V系列和数字系列区别在哪?看完你就知道了
  9. 从企业角度看,为什么要选择第三方技术服务商
  10. Sketch n Cartoonize for mac(照片卡通化素描化编辑工具)