栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用JQuery在循环中在Ajax请求之前发出警报

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用JQuery在循环中在Ajax请求之前发出警报

IMO

jQuery.Deferred()
目标将是最有希望的方式。

  • Deferred对象是

    chainable utility
    通过调用jQuery.Deferred()方法创建的对象。它可以将多个回调注册到回调队列中,调用回调队列,并中继任何同步或异步功能的成功或失败状态。

  • deferred objects
    可用于处理异步事件-您启动一个动作,然后注册一个回调,该回调将在动作完成时调用。这包括AJAX,尽管还有很多其他用途。

哪里要求解决

function callAjaxMethod(url, step) {  return $.Deferred(function() {        //Confirm box for use inputs        if(confirm(step))        {          //Ajax call$.ajax(url).done(function(data){  //Do something  //Update your HTML if needed});        }        setTimeout(function() {          //This will resolve your call again          this.resolve();        }.bind(this), 1000);  })}

递延对象

var defer = $.Deferred().resolve();var counters = [1, 2, 3, 4, 5];$.each(counters, function(key, value) {    defer = defer.then(function() {      return callAjaxMethod('URL', value);    });});

完成后它将调用

defer.then(function() {  //It will call when all done});

很少的文档

官方jQuery.Deferred

通过jQuery
deferred的调用ajax

关于多个jQuery Promise的文章

希望这对您有帮助:)

var $demo = $('#demo');var ajaxURL = 'https://jsonplaceholder.typipre.com/posts';function callAjaxMethod(url, step) {  return $.Deferred(function() {        //Confirm box for user inputs        if(confirm(step))        {          //Ajax call          $.ajax(url).done(function(data){ //Do something //console.log(data); //Update the HTML OK $demo.append(step + ": Success" + "<br/>");          });        }        else        {          //Update the HTML when cancel          $demo.append("<font color='red'>"+ step +": Cancelled </font>" + "<br/>");        }        //Use timeout to get the resolved        setTimeout(function() {          this.resolve();        }.bind(this), 1000);  })}//Defer objectvar defer = $.Deferred().resolve();var counters = ['call 1', 'call 2', 'call 3', 'call 4', 'call 5'];//Loop your calls$.each(counters, function(key, value) {    defer = defer.then(function() {      return callAjaxMethod(ajaxURL, value);    });});defer.then(function() {  //It will call when all done  $(demo).append("<br/><br/>"+"ALL DONE");});div{  color: blue;  font-size: 14px;}<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script><div id="demo"></div>


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/386132.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号