jquery ajax請求方式與提示使用者等待處理

來源:互聯網
上載者:User
初次使用$.ajax() ,我沒有去區分過ajax的非同步請求和同步請求的不同,剛開始使用同步請求,以至後來出現許多問題,特別在體驗度方面。
非同步和同步:
         同步意味著執行完一段程式才能執行下一段,它屬於阻塞模式,其表現在網頁上的現象是——瀏覽器會鎖定頁面(即所謂的頁面假死狀態),使用者不能操作其它的,必須等待當前請求返回資料。而使用非同步方式請求,頁面不會出現假死現象。
提升使用者體驗度:
         當使用者提交資料等待頁面返回結果是需要時間的,有時這段等待時間比較長,為了提高使用者體驗度,我們通常會給出 “正在處理,請稍等。”諸如此類的提示。我們可通過設定$.ajax()下的參數beforeSend()來實現,
eg: 
html關鍵代碼     
 <div id="warning"></div>


js檔案中的關鍵代碼
$.ajax(function(){
        .
        .
        .
       //省略了一些參數,這裡只給出async 和 beforeSend
      async: false,    //同步請求,預設情況下是非同步(true)
      beforeSend: function(){
             $('#warning').text('正在處理,請稍等。');
      }
});
注意,如果你按照同步設定  async: false,    $('#warning').text('正在處理,請稍等。');在網頁中根本沒有出現效果,如果將$('#warning').text('正在處理,請稍等。');換成 alert(‘test’);在發送請求前會立即看到彈出框,這說明 beforeSend:是執行了,但是換成別的諸如 $('#warning').text('正在處理,請稍等。'); 在請求發出返回結果了都沒有看到提示出現。關於這個問題,我是納悶了很久,問題到底是什麼我還是不清楚。
把同步請求改成非同步請求,上面的問題就沒有了,
beforeSend: function(){
             $('#warning').text('正在處理,請稍等。');
      }
會立即被執行。
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.