ホームページ > ウェブフロントエンド > jsチュートリアル > Jquery_jquery での Ajax の beforeSend メソッドの賢い使い方

Jquery_jquery での Ajax の beforeSend メソッドの賢い使い方

WBOY
リリース: 2016-05-16 15:18:57
オリジナル
1384 人が閲覧しました

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);
  }
});
ログイン後にコピー

トースト効果をシミュレート
ajax がサーバーにデータリストのロードを要求すると、ロードするよう求められます (「ロード中です。お待​​ちください...」)。

$.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 メソッドについての理解を深めてくれることを願っています。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート