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能够完整的显示,免得很突兀。

总结

以上所述是小编给大家介绍的Ajax返回数据之前的loading等待效果,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

时间: 2024-08-04 14:19:30

Ajax返回数据之前的loading等待效果的相关文章

Ajax叠加(Ajax返回数据用Ajax发出)

              最近在做人事管理系统的一个签到功能,首先是把部门当做参数,把参数用Ajax发送到数据库进行查询,然后以表格形式动态生成员工信息到返回页面的Div里,表格最后的一列是签到按钮,这时我想用JQuery继续获取被点击的"签到"按钮,然后用Ajax将数据发送到数据库签到表,更新签到表,于是我就把每个签到按钮的id属性设置成第一次Ajax返回的每个员工信息的工号,再次用JQuery获取,怎么获取呢?想到了标签加事件选择器,于是写了下面代码:           $(f

Ajax叠加(Ajax返回数据用Ajax发出)示例代码_AJAX相关

最近在做人事管理系统的一个签到功能,首先是把部门当做参数,把参数用Ajax发送到数据库进行查询,然后以表格形式动态生成员工信息到返回页面的Div里,表格最后的一列是签到按钮,这时我想用JQuery继续获取被点击的"签到"按钮,然后用Ajax将数据发送到数据库签到表,更新签到表,于是我就把每个签到按钮的id属性设置成第一次Ajax返回的每个员工信息的工号,再次用JQuery获取,怎么获取呢?想到了标签加事件选择器,于是写了下面代码: 复制代码 代码如下: $(function(){ $(

Ajax叠加(Ajax返回数据用Ajax发出)示例代码

最近在做人事管理系统的一个签到功能,首先是把部门当做参数,把参数用Ajax发送到数据库进行查询,然后以表格形式动态生成员工信息到返回页面的Div里,表格最后的一列是签到按钮,这时我想用JQuery继续获取被点击的"签到"按钮,然后用Ajax将数据发送到数据库签到表,更新签到表,于是我就把每个签到按钮的id属性设置成第一次Ajax返回的每个员工信息的工号,再次用JQuery获取,怎么获取呢?想到了标签加事件选择器,于是写了下面代码: 复制代码 代码如下: $(function(){ $(

.NET MVC 3 jquery ajax 返回数据捕获.

问题描述 publicActionResultIndex(){if(Request["id"]!=null){ViewData["test"]="ok";}else{ViewData["test"]="no";}returnView();} @{Layout=null;}<!DOCTYPEhtml><html><head><title>Index</ti

MVC中根据ajax返回数据,动态添加复杂html内容

问题描述 请教各位,如下代码,有id为abc的div,ajax返回一组数据,根据数据,动态添加一组复杂HTML内容到div中.具体下面代码里,需要添加一个视图my_view到div里,但是视图my_view是很复杂的Html内容,使用append方法,实际会报错,因为my_view转为html后,放进append方法,append的参数为字符串,但my_view有回车换行,js的字符串引号不能换行,除非把my_view全部内容缩为一行.有什么好办法实现我需要的功能吗?<divid="abc

前端调错(一)---ajax返回数据成功,却进入error方法

 今天同事在调ajax的时候遇到了一个问题,明明ajax成功的返回了数据,但是每次执行的时候都进入error方法.            那么如何才能找到问题的原因呢?如下 [javascript] view plain copy  print?  function loadPic(){   $.ajax({               url: "courseRotation/loadPic",               async: false,               da

【求助】ajax返回js如何输出?

问题描述 [求助]ajax返回js如何输出? ajax返回了一个js引用: 这个js本身显示一段文件.但把这个引用放到页面中时,页面中只存在这段引用字符,不会将js本身应该输出的文字展示出来.该怎样解决这个问题呢? 解决方案 dateType设置成script 或者用eval执行 解决方案二: JS ajax返回数据问题纯js的ajax readyState不返回4,jquery的$.ajax执行error,status200且数据可显示 解决方案三: $.ajax({ url: "/login

html如何动态生成一个等待效果,屏幕黑然后小圈再转,等ajax返回成功才消失

问题描述 html如何动态生成一个等待效果,屏幕黑然后小圈再转,等ajax返回成功才消失 html如何动态生成一个等待效果,屏幕黑然后小圈再转,等ajax返回成功才消失 解决方案 请采纳! 直接用这个搞定: jQuery.BlockUI

jQuery Ajax 异步加载显示等待效果代码分享_jquery

AJAX 全称 Asynchronous JavaScript and XML(异步的 JavaScript 和 XML).它并非一种新的技术,而是以下几种原有技术的结合体. 1) 使用CSS和XHTML来表示. 2) 使用DOM模型来交互和动态显示. 3) 使用XMLHttpRequest来和服务器进行异步通信. 4) 使用javascript来绑定和调用. 通过AJAX异步技术,可以在客户端脚本与web服务器交互数据的过程中使用XMLHttpRequest对象来完成HTTP请求(Reques