主頁 > 知識(shí)庫 > Ajax在請(qǐng)求過程中顯示進(jìn)度的簡單實(shí)現(xiàn)

Ajax在請(qǐng)求過程中顯示進(jìn)度的簡單實(shí)現(xiàn)

熱門標(biāo)簽:科智聯(lián)智能電銷機(jī)器人 徐州電銷卡外呼系統(tǒng)供應(yīng)商 襄陽外呼系統(tǒng)接口 百靈鳥 青海醫(yī)療智能外呼系統(tǒng)怎么樣 上海浦東百度地圖標(biāo)注中心注冊 外呼系統(tǒng)獲取客戶手機(jī)號(hào) 老虎郵局地圖標(biāo)注點(diǎn) 目標(biāo)三維地圖標(biāo)注

Ajax在Web應(yīng)用中使用得越來越頻繁。在進(jìn)行Ajax調(diào)用過程中一般都具有這樣的做法:顯示一個(gè)GIF圖片動(dòng)畫表明后臺(tái)正在工作,同時(shí)阻止用戶操作本頁面(比如Ajax請(qǐng)求通過某個(gè)按鈕觸發(fā),用戶不能頻繁點(diǎn)擊該按鈕產(chǎn)生多個(gè)并發(fā)Ajax請(qǐng)求);調(diào)用完成后,圖片消失,當(dāng)前頁面運(yùn)行重新編輯。以下圖為例,頁面中通過一個(gè)Load鏈接以Ajax請(qǐng)求的方式加載數(shù)據(jù)(左)。當(dāng)用戶點(diǎn)擊該鏈接之后,Ajax請(qǐng)求開始,GIF圖片顯示“Loading“狀態(tài),同時(shí)當(dāng)前頁面被“罩住”防止用戶繼續(xù)點(diǎn)擊Load按鈕(中);Ajax請(qǐng)求完成被返回響應(yīng)的結(jié)果,結(jié)果被呈現(xiàn)出來的同時(shí),GIF圖片和“遮罩”同時(shí)消失(右)。

源碼下載

    在這里我同樣以ASP.NET MVC應(yīng)用為例,提供一種簡單的實(shí)現(xiàn)方式。我們GIF圖片和作為遮罩的div>定義在布局文件中,并為它們定制了相應(yīng)的CSS。其中GIF和遮罩div>的z-index分別設(shè)置為2000和1000(這個(gè)任意,只要能夠讓遮罩的div>遮住當(dāng)前頁面,GIF圖片顯示在最上層即可)。后者通過設(shè)置position、top、bottom、left和right是它可以遮住整個(gè)頁面,并且將其背景設(shè)置為黑色。

  !DOCTYPE html>
  html>
    head>
      title>@ViewBag.Title/title>  
      style type="text/css">
        .hide{displaynone }
        .progress{z-index }
        .mask{position fixed;top ;right ;bottom ;left ; z-index ; background-color #}
      /style>   
      ...
    /head>
    body> 
      div>@RenderBody()/div>
      img id="progressImgage" class="progress hide" alt="" src="@Url.Content("~/Images/ajax-loader.gif")"/>
      div id="maskOfProgressImage" class="mask hide">/div>
    /body>
  /html>

然后我們通過如下的代碼為jQuery定義了另一個(gè)實(shí)現(xiàn)Ajax調(diào)用的方法ajax2,該方法依然調(diào)用$.ajax(options)實(shí)現(xiàn)Ajax調(diào)用。在ajax2方法中我們將options參數(shù)complete屬性進(jìn)行了“封裝”,讓可以將顯示出來的GIF圖片和遮罩div>隱藏起來。同時(shí)覆蓋了options的async屬性,是之總是以異步方式執(zhí)行,因?yàn)橹挥羞@樣瀏覽器才不能被鎖住,GIF也才能正常顯示。在調(diào)用$.ajax(options)進(jìn)行Ajax請(qǐng)求之前,我們將GIF圖片和遮罩div>顯示出來,并且將其定位在正中央。遮罩div>的透明度進(jìn)行了相應(yīng)設(shè)置,所以會(huì)出現(xiàn)上圖(中)的效果。

 !DOCTYPE html>
  html>
    head>
      ...
      script type="text/javascript" src="@Url.Content("~/Scripts/jquery-...min.js")">/script>
      script type="text/javascript">
        $(function () {
          $.ajax = function (options) {
            var img = $("#progressImgage");
            var mask = $("#maskOfProgressImage");
            var complete = options.complete;
            options.complete = function (httpRequest, status) {
              img.hide();
              mask.hide();
              if (complete) {
                complete(httpRequest, status);
              }
            };
            options.async = true;
            img.show().css({
              "position" "fixed",
              "top" "%",
              "left" "%",
              "margin-top" function () { return - * img.height() / ; },
              "margin-left" function () { return - * img.width() / ; }
            });
            mask.show().css("opacity", ".");
            $.ajax(options);
          };
        });
      /script>
    /head>
    ...
  /html>

那么現(xiàn)在進(jìn)行Ajax調(diào)用的時(shí)候只需要調(diào)用$.ajax2就可以,如下所示的是實(shí)例中“Load”鏈接的click事件的注冊代碼:

  a href="#" id="load">Load/a>
  div id="result">/div>
  script type="text/javascript">
    $("#load").click(function () {
      $.ajax ({
        url '@Url.Action("GetContacts")',
        success function(result)
        {
          $("#result").html(result);
        }
      });
    });
  /script>
您可能感興趣的文章:
  • 解決火狐瀏覽器下JS setTimeout函數(shù)不兼容失效不執(zhí)行的方法
  • 修改js Calendar日歷控件 兼容IE9/谷歌/火狐
  • 解決ExtJS在chrome或火狐中正常顯示在ie中不顯示的瀏覽器兼容問題
  • 設(shè)為首頁加入收藏兼容360/火狐/谷歌/IE等主流瀏覽器的代碼
  • 純js實(shí)現(xiàn)div內(nèi)圖片自適應(yīng)大小(已測試,兼容火狐)
  • Ajax請(qǐng)求過程中下載文件在FireFox(火狐)瀏覽器下的兼容問題

標(biāo)簽:商洛 咸寧 佛山 股票 揭陽 辛集 紅河 荊州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Ajax在請(qǐng)求過程中顯示進(jìn)度的簡單實(shí)現(xiàn)》,本文關(guān)鍵詞  Ajax,在,請(qǐng)求,過程中,顯示,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Ajax在請(qǐng)求過程中顯示進(jìn)度的簡單實(shí)現(xiàn)》相關(guān)的同類信息!
  • 本頁收集關(guān)于Ajax在請(qǐng)求過程中顯示進(jìn)度的簡單實(shí)現(xiàn)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章