$.ajax()——超时设置,增加 loading 提升体验

前端之家收集整理的这篇文章主要介绍了$.ajax()——超时设置,增加 loading 提升体验前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

前端发送Ajax请求到服务器,服务器返回数据这一过程,因原因不同耗时长短也有差别,且这段时间内页面显示空白。如何优化这段时间内的交互体验,以及长时间内服务器仍未返回数据这一问题,是我们开发中不容忽视的重点。

常见的做法是:

1、设置超时时间,一旦时间超过设定值,便终止请求;
2、页面内容加载之前,手动增加一个 loading 层。

代码如下:

  1. getAjax: function (method,apiUrl,options,callback) {
  2. var xhr = $.ajax({
  3. type: method,url: apiUrl,data: options,timeout: 5000,// 设置超时时间
  4. dataType: "json",beforeSend: function (xhr) {
  5. $.showLoading(); // 数据加载成功之前,使用loading组件
  6. },success: function(json) {
  7. $.hideLoading(); // 成功后,隐藏loading组件
  8. if(callback && callback instanceof Function === "true") {
  9. callback(json);
  10. }
  11. },error: function (textStatus) {
  12. console.error(textStatus);
  13. },complete: function (XMLHttpRequest,status) {
  14. if(status == 'timeout') {
  15. xhr.abort(); // 超时后中断请求
  16. $.alert("网络超时,请刷新",function () {
  17. location.reload();
  18. })
  19. }
  20. }
  21. })
  22. }


转自:http://www.cnblogs.com/fayin/p/6387044.html

猜你在找的Ajax相关文章