大家都知道AJAX的請求是異步的,這種非同步的機制為我們帶來了體驗上的優化,但是同時我要求我們有更完善的思維去處理一個業務。當用戶請求後長時間沒有回應是一種非常不好的用戶體驗,所以我們可以在請求後利用AJAX顯示加載中並彈出圖層遮擋頁面,下面來看看實現方法。
前言
相信每位開發者都應該有所了解,當使用者發出AJAX請求時,如果長時間處於請求階段,而沒有給予用戶回應,會給用戶造成錯覺,導致用戶以為我們的系統「沒反應「了。這從某方面來講是一種不友善。
甚至有的時候,使用者看不到想要的結果,就會不停的請求,這樣會發生意想不到的後果。
所以,當發出AJAX請求時,我們給予一定的措施,保證系統的正確運作和良好的使用者體驗。
在這裡,我使用的是:顯示載入中圖片,並彈出一個圖層,使用戶不能再次發出請求。
實作方法
#HTML部分:
<p id="loading" class="loadingp"> <img src="images/data-loading.gif" alt="图片加载中···" /> </p>
HTML部分只需要放置一個p,裡麵包含一個img。
CSS樣式:
/*图片加载中p图层,用于遮挡页面*/ .loadingp { position:absolute; text-align:center; left:0px; top:0px; z-index:70; background-color:#000000; opacity: 0.7;/*透明#CCCCCC*/ display:none; } /*加载中图片*/ .loadingp img { position:absolute; left:0px; top:0px; z-index:80; }
對p和img進行樣式設定。
JS程式碼
//ajax请求过程中,显示加载中图片并显示图层,请求完成隐藏图片 $(function () { //注册ajax加载事件 $("#loading").ajaxStart(function () { //一个p,用来遮挡页面,请求过程中,不可操作页面 var lockwin = $(this); //p占满整个页面 lockwin.css("width", "100%"); lockwin.css("display", "block"); lockwin.css("height", $(window).height() + $(window).scrollTop()); //设置图片居中 $("#loading img").css("display", "block"); $("#loading img").css("left", ($(window).width() - 88) / 2); $("#loading img").css("top", ($(window).height() + $(window).scrollTop()) / 2); }); $("#loading").ajaxStop(function () { //隐藏p var lockwin = $(this); lockwin.css("width", "0"); lockwin.css("display", "none"); lockwin.css("height", "0"); //设置图片隐藏 $("#loading img").css("display", "none"); }); });
上面是我整理給大家的,希望今後會對大家有幫助。
相關文章:
通達OA 使用Ajax與工作流程外掛程式實作依據人力資源系統資料增加OA帳號(圖文詳解)
Ajax提交參數的值中帶有html標籤不能提交成功的解決方案
#Lavarel框架中使用ajax提交表單的方法_AJAX相關
#####
以上是AJAX顯示載入中並彈出圖層遮蔽頁面的實作範例的詳細內容。更多資訊請關注PHP中文網其他相關文章!