您好,欢迎访问一九零五行业门户网

Ajax返回数据之前怎么做出loading的等待动画效果

这次给大家带来ajax返回数据之前怎么做出loading的等待动画效果,ajax返回数据之前做出loading等待动画效果的注意事项有哪些,下面就是实战案例,一起来看一下。
首先,我们通过ajax请求,向后台传递参数,然后后台经过一系列的运算之后向前台返还数据,我希望在等待数据成功返还之前可以展示一个loading.gif图
不废话,在页面上执行点击事件(<a sceneid="@scene.id" href="javascript:void(0)" rel="external nofollow" onclick="build(this)">生成</a>)
调用下面方法:
function build(sender) {   var jqsender = $(sender);   var sceneid = jqsender.attr('sceneid');   $.ajax({    type: 'post',    url: follow/updateurl,    data: { sceneid: sceneid },    beforesend: function () {     jqsender.hide().after('<img id="load" src="/images/load.gif" />');    },    success: function (data) {     //根据id和class获取td标签     $('tbody tr[id=' + sceneid + '] td.wxurl-col').html(data.qrurl);     $('tbody tr[id=' + sceneid + '] td.localkey-col').html(data.localkey);     //隐藏生成按钮,插入图片     var localkey = data.localkey;     jqsender.after('<img src="/image/' + localkey + '" />');    },    complete: function () {     $('#load').remove();    }   });  }
后台页面就不写了,url中配置了传递到后台的路径,最主要的就是
beforesend: function () { jqsender.hide().after('<img id="load" src="/images/load.gif" />'); },
这要考虑到ajax异步请求的特点,当ajax执行到url的时候,会有一个线程跳转到后台去执行,
浏览器会增加一个线程(不知道这么说标不标准)继续执行后面的程序,到success: function (data)暂停等待 后台成功的返回数据
这样,before里面插入的图片就相当于是一个loading,当数据成功返回后,把before里面的图片移除,写在complete: function ()语句中。
我后台的处理流程大概是这样的:首先一个http get请求,获取微信公众平台的access_token,然后再用http post请求,获取换取微信二维码的ticket
然后再用webclient方法,把请求到的二维码下载到本地存储,然后就是数据库的增删查改,展示二维码到网页上。
这么一大段才让loading有足够的时间展示出来,如果时间比较短,可以网上查查看有没有定义一个时间,让loading能够完整的显示,免得很突兀。
相信看了本文案例你已经掌握了方法,更多精彩请关注其它相关文章!
推荐阅读:
用cors实现webapi ajax跨域请求的方法
ajax怎么实现动态加载组合框(附代码)
以上就是ajax返回数据之前怎么做出loading的等待动画效果的详细内容。
其它类似信息

推荐信息