常见的一种效果,在用ajax请求时,没有返回前会出现前出现一个转动的loading小图标或者“内容加载中..”,用来告知用户正在请求数据。这个就可以用beforeSend方法来实现。

下载demo:ajax loading

代码如下:

复制代码代码如下:
function test_ajax(){
   $.ajax(
   {
      type:"GET",//通常会用到两种:GET,POST。默认是:GET
      url:"a.php",//(默认: 当前页地址) 发送请求的地址
      dataType:"html",//预期服务器返回的数据类型。
      beforeSend:beforeSend, //发送请求
      success:callback, //请求成功
      error:error,//请求出错 
      complete:complete//请求完成
   });
}
function error(XMLHttpRequest, textStatus, errorThrown){
  // 通常情况下textStatus和errorThown只有其中一个有值 
  $("#showResult").append("<div>请求出错啦!</div>");
}
function beforeSend(XMLHttpRequest){
  $("#showResult").append("<div><img src='loading.gif' /><div>");
}
function complete(XMLHttpRequest, textStatus){
  $("#showResult").remove();
}
function callback(msg){
  $("#showResult").append("<div>请求成功,回传数:"+msg+"<div>");
}

方法beforeSend,用于在向服务器发送请求前添加一些处理函数。这是一个ajax事件,在ajax请求开始之前就被触发,通常允许用户修改XMLHttpRequest对象(比如说设置附加的头部信息),关于ajax事件的解释可参考文档:http://docs.jquery.com/Ajax_Events

我们还见到一种情况,很多网站在加载内容的过程中给出“数据加载中,请稍候”的提示,当内容被加载完毕后显示内容。可以设置默认文本显示为加载中的提示,当内容加载完毕时,我们可以通过ID选择器,将该标签中的文本替换成最终的内容。以此来取代beforeSend,效率更高。

什么时候用beforeSend,什么时候用文本替换,取决于ajax请求前后你所展示的DOM元素是否一致,如果你所展示的DOM元素在请求之前已经存在,那么通过上述文本替换的方式来处理会好些,如果除此以外你还需增加其他的需求,那么还是用beforeSend来处理吧。

最新文章

  1. Backpropagation反向传播算法(BP算法)
  2. java集合练习——题目
  3. JSP内置对象总结
  4. 常见的装置与其在Linux当中的档名
  5. Linux文件系统介绍
  6. 【转】强大的vim配置文件,让编程更随意
  7. 生产环境下JAVA进程高CPU占用故障排查
  8. java中由类名和方法名字符串实现其调用【反射机制】
  9. JS达到Web指定保存的和打印功能的内容
  10. SSM-Spring-04:Spring的DI的构造注入,P命名注入,和集合注入
  11. h5实现实时时钟
  12. 分布式系列十一: Redis进阶
  13. framework7 入门(数据绑定)
  14. HDU - 5157 :Harry and magic string (回文树,求多少对不相交的回文串)
  15. An &#39;&#39;all&#39;&#39; model group must appear in a particle with...问题解决记录
  16. POJ 2480 Longge&#39;s problem 欧拉函数—————∑gcd(i, N) 1&lt;=i &lt;=N
  17. js学习笔记17----元素的各种位置,尺寸
  18. Http Status Code 套餐合集(转载)
  19. 用thinkphp执行原生sql
  20. object references an unsaved transient instance【异常】

热门文章

  1. SQLite数据库基本操作
  2. MySQL通过函数获取字符串汉字拼音首字母大写字符串
  3. 20170626_oracle_数据库设计
  4. java jmenu的替代方案
  5. YTU 2633: P3 数钱是件愉快的事
  6. JFreeChart基础(1) (转自 JSP开发技术大全)
  7. 9 Range 实用操作
  8. [USACO15DEC]High Card Low Card (Platinum)
  9. NOI.AC #31 MST —— Kruskal+点集DP
  10. MSD6A628开发资料与技术支持