使用重写的$.ajax()实现后台处理进度显示(gif)

JS代码

(function($) {
        $("#progressImgage").hide();
        $("#maskOfProgressImage").hide();
        //备份jquery的ajax方法
        var _ajax = $.ajax;

        //重写jquery的ajax方法
        $.ajax = function(options) {
            var img = $("#progressImgage");
            var mask = $("#maskOfProgressImage");
            img.removeClass(‘hide‘);
            mask.removeClass(‘hide‘);
            var complete = options.complete;
            options.complete = function(httpRequest, status) {
                img.hide();
                mask.hide();
                if (complete) {
                    complete(httpRequest, status);
                }
            };
            img.show();
            img.show().css({
                "position" : "fixed",
                "top" : "50%",
                "left" : "50%",
                "width" : "150px",
                "height" : "150px",
                "margin-top" : function() {
                    return -1 * img.height() / 2;
                },
                "margin-left" : function() {
                    return -1 * img.width() / 2;
                }
            });
            mask.show().css("opacity", "0.2" );
            return _ajax(options);
        }
    })(jQuery);

CSS代码:

.error {
    color: red;
    margin: 15px;
}

.hide {
    display: none;
}

.progress {
    z-index: 2000
}

.mask {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 1000;
    background-color: #000000
}

html代码:

    <img id="progressImgage" class="progress hide" src="<c:url value="/resources/img/ajax-loader.gif"/>" />
    <div id="maskOfProgressImage" class="mask hide"></div>

下面是我使用的gif:

效果如下:

版权声明:本文为博主原创文章,转载的时候请注明出处。

时间: 2024-08-03 07:28:34

使用重写的$.ajax()实现后台处理进度显示(gif)的相关文章

使用重写的$.ajax()统一错误处理

在jquery开发中,我们经常会用到类似如下的代码: $.ajax({ url : '...', type : 'POST', data : {}, success : function(data){ //执行状态是200时候调用 }, error : function(XMLHttpRequest, msg, e){ //执行状态是非200时调用 }, complete : function(httpRequest, status){ //完成了一次请求时调用 } }); 其实往往除了url,

Asp.net中ajax调用后台方法

这个当然不用说大家都知道的一种就是ajax调后台的方法.1.有参数的方法调用示例代码如下:前台jQuery代码:$(function() {  这个当然不用说大家都知道的一种就是ajax调后台的方法. 1.有参数的方法调用 示例代码如下: 前台jQuery代码: $(function() {   var browers = browersEstimate();   var params = '{browersType:"' + browers + '"}';   $.ajax({   

Asp.Net MVC页面显示后台处理进度问题

这个问题的背景是,用户通过浏览器上传文件或Excel数据到系统中,页面需要时时显示后台处理进度,以增强用户的体验. 在GitHub上找到一个一个项目,基本实现了这个功能,具体效果如下图 代码实现过程大概如下: 第一步 :定义一个HomeController类,用来处理浏览器的上传文件和进度情况 1 public class HomeController : Controller 2 { 3 // 4 // GET: /Home/ 5 6 public ActionResult Index() 7

Web页面实现后台数据处理进度与剩余时间的显示

1.页面后台代码添加如下静态变量: /// <summary> /// 总数 /// </summary> private static double total = 0; /// <summary> /// 当前进度 /// </summary> private static int cur = 0; /// <summary> /// 错误信息 /// </summary> private static string errMsg

前台通过ajax获取后台数据,PHP如何返回中文数据

现在经常使用Ajax调用后台php获取后台数据,但是PHP返回的数据如果含有中文的话,Ajax会无法识别,那咋整呢,我用的是比较笨的方法,但是实用: echo urldecode(json_encode(array('status'=>'1', 'errMsg'=>urlencode('数据传递错误,请重试')))); return;

通过PHP前端后台交互/通过ajax前端后台交互/php基础传输数据应用/简单的留言版/简单的注册账户/简单的登录页/

  前  言  PHP     通过上一篇博客,注册账号与登录页面--前后台数据交互  跳转转到index主页,接下来进入主页留言板功能,通过ajax向后台传输数据,同时发表留言. 具体的内容分析如下: ① PHP中的数据传输-->>--在主页先添加基础HTML5基本框架,通过form表单提交数据 >>由主页传输给主页后台-->>主页后台经过转码保存实例化的文件 ②主页后台通过判断(是否保存文件)使用输出语句输出true或false,前台通过ajax中的post中的fu

用ajax获取后台数据,返回json数据,怎么在前台使用?

用ajax获取后台数据,返回json数据,怎么在前台使用呢? 后台 C# code ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 if (dataType == "SearchCustomer")                 {                     int ID;                     if (Int32.TryParse(CustomerID, out ID))                     {    

ajax往后台传json格式数据报415错误

问题描述: ajax往后台传json格式数据报415错误,如下图所示 页面代码 function saveUser(){ var uuId = document.getElementById("uuid").value; var idCard = document.getElementById("idCard").value; alert(uuId+idCard); // var result = new Object(); // result.uuId = uuI

利用ajax与后台交互容易出现的问题及解决办法

Ajax在当今的前后台交互中可以说是很火的.那么在使用ajax与后台交互的过程中我们会遇到哪些小问题呢. 使用get方法的时候: 1.浏览器的缓存问题:当我们多次访问同一个地址的时候,浏览器不会每次都更新地址,而是将第一次访问到的数据缓存起来,后面访问同样地址的时候直接从缓存中获取数据,而不会从服务器中读取数据,因此如果我们改变后台中的数据,我们访问时数据将不会更新,访问到的数据也不会改变.如何解决这个问题呢?这时我们可以在"url?"后面用"&"符号连接一