先贴上代码.
传入 4 给参数, 保证 post,get 都能执行, 和普通的 Ajax 区别在于添加了设置的 timeout.
并在每一次的发送接收请求后执行 dialog() 方法.
- function AjaxRequest(apiUrl, method, param, callback) {
- $.Ajax({
- url: apiUrl,
- type: method,
- data: param,
- timeout: 150000,
- dataType: "JSON",
- beforeSend: function (XMLHttpRequest) {
- dialog("加载中...", false);
- });
- },
- success: function (data, textStatus) {
- dialog("加载中...", true);
- return callback(data);
- },
- error: function (XMLHttpRequest, textStatus, errorThrown) {
- dialog("加载失败!", true);
- },
- complete: function (XMLHttpRequest, status) {
- if (status == "timeout") {
- dialog("网络超时!", true);
- }
- }
- });
- }
- // dialog() 方法中主要是对 is 的判断, 如果是 true, 那么延迟一秒后隐藏, 保证至少提示框能显示出来, false 的话就不操作.
- function dialog(msg, is) {
- var d = $(".ajax_box");
- d.find(".ajax_dialog").text(msg);
- is
- ?
- setTimeout(function () {
- d.fadeOut();
- }, 1000) :
- "";
- }
来源: http://www.bubuko.com/infodetail-2887436.html