首頁 >web前端 >js教程 >Jquery中巧用Ajax的beforeSend方法_jquery

Jquery中巧用Ajax的beforeSend方法_jquery

WBOY
WBOY原創
2016-05-16 15:18:571415瀏覽

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) {
    console.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") {
      // ...
    }
  },
  complete: function () {
    $("loading").hide();
  },
  error: function (data) {
    console.info("error: " + data.responseText);
  }
});

方法beforeSend,用於在向伺服器發送請求前添加一些處理函數,希望透過這篇文章加深大家對beforeSend方法的學習認識。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn