巧用Ajax的beforeSend提高用戶體驗

来源:http://www.cnblogs.com/xjuan/archive/2016/04/27/5438907.html
-Advertisement-
Play Games

jQuery是經常使用的一個開源js框架,其中的$.ajax請求中有一個beforeSend方法,用於在向伺服器發送請求前執行一些動作。 防止重覆數據 在實際項目開發中,提交表單時常常由於網路或者其原因,用戶點擊提交按鈕誤認為自己沒有操作成功,進而會重覆提交按鈕操作次數,如果頁面前端代碼沒有做一些相 ...


jQuery是經常使用的一個開源js框架,其中的$.ajax請求中有一個beforeSend方法,用於在向伺服器發送請求前執行一些動作。

$.ajax({
     beforeSend:function(){
     // handle the beforeSend event     
     },
     complete:function(){
// handle the complete event   
     }
});

防止重覆數據

在實際項目開發中,提交表單時常常由於網路或者其原因,用戶點擊提交按鈕誤認為自己沒有操作成功,進而會重覆提交按鈕操作次數,如果頁面前端代碼沒有做一些相應的處理,通常會導致多條同樣的數據插入資料庫,導致臟數據的增加。要避免這種現象,在$.ajax請求中的beforeSend方法中把提交按鈕禁用掉,等到Ajax請求執行完畢,在恢復按鈕的可用狀態。
舉個例子:

$.ajax({
type:"post",
data:studentInfo,
contentType:"application/json",
url:"/Home/Submit",
beforeSend:function(){
     //禁用按鈕防止重覆提交
     $("#submit).attr({disabled:"disabled"});
},
success:function(data){
     if(data=="Success"){
          // 清空輸入框
          clearBox();
     }
},
complete:function(){
     $("#submit").removeAttr("disabled");
},
error:function(data){
     consloe.info("error:"+data.responseText);
}
});

模擬Toast效果

ajax請求伺服器載入數據列表時提示loading(“載入中,請稍後...”)

$.ajax({
type:"post",
contentType:"application/json",
url:"/Home/GetList",
beforeSend: function(){
     $("loading").show();
},
success: function(data){
     if (data=="Success"){
          // ...
     }
},
error: function(){
     console.info("error:"+data.responseText);
}
});

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 命令模式(Command) 定義 命令模式(Command),將一個請求封閉為一個對象,從而使你可以用不同的請求對客戶進行參數化;對請求排除或記錄請求日誌,以及支持可撤銷的操作。 類圖 描述 Command:定義命令的統一介面; ConcreteCommand:Command介面的實現者,要執行的具 ...
  • Dubbo是Alibaba開源的分散式服務框架,它最大的特點是按照分層的方式來架構,使用這種方式可以使各個層之間解耦合(或者最大限度地松耦合)。從服務模型的角度來看,Dubbo採用的是一種非常簡單的模型,要麼是提供方提供服務,要麼是消費方消費服務,所以基於這一點可以抽象出服務提供方(Provider ...
  • ...
  • on()方法綁定多個事件 用on()方法綁定多個選擇器、多個事件 ...
  • 編寫jQuery Plugin,要設置預設值,並允許用戶修改預設值,或者運行是傳入其他值。 最終,我們得出編寫一個jQuery插件的原則: 1. 給$.fn綁定函數,實現插件的代碼邏輯; 2. 插件函數最後要 以支持鏈式調用; 3. 插件函數要有預設值,綁定在 上; 4. 用戶在調用時可傳入設定值以 ...
  • 1.Angular優點 1. 模板功能強大豐富,並且是聲明式的,自帶了豐富的Angular指令; 2. 是一個比較完善的前端MVC框架,包含模板,數據雙向綁定,路由,模塊化,服務,過濾器,依賴註入等所有功能; 3. 自定義Directive,比jQuery插件還靈活,但是需要深入瞭解Directiv ...
  • 一、預期效果 實現一個效果,如下。 品牌列表預設精簡顯示,單擊“顯示全部品牌”按鈕顯示全部品牌,同時列表將推薦的品牌的名字高亮顯示,按鈕里的文字變成“精簡顯示品牌”。再次點擊“精簡顯示品牌”回到初始頁面。 二、實現過程 html結構如下: <!DOCTYPE html> <html lang="en ...
  • 1. 查詢文本框 2. 數字文本框 any 代表不設置 3. 滑動條 4. 顏色文本框 value 是一個預設顏色,目前只支持16進位的顏色 5. 電話號碼文本框 6. 網站文本框 7. 電子郵箱文本框 下麵這幾個都是時間的選擇器。 8. 選取日、月、年 9. 選取月、年 10. 選取周和年 11. ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...