ホームページ ウェブフロントエンド jsチュートリアル Ajax request_jquery をシミュレートする jQuery Mockjax プラグインの詳細な例

Ajax request_jquery をシミュレートする jQuery Mockjax プラグインの詳細な例

May 16, 2016 pm 03:20 PM
アヤックスリクエスト

原則

jquery-mockjax は、フロントエンド Ajax リクエストのバックグラウンドへの戻りデータを模擬するために使用されます。

原理は非常にシンプルです

Ajax リクエストを送信したい js コードにブレークポイントを置き、[jquery-mockjax が導入されている場合] と [jquery-mockjax が導入されていない場合] の $.ajax.toString() の値を比較します。

明らかに、jquery-mockjax が導入されると、このモック ライブラリは jquery が提供する ajax 関数を置き換えます。これにより、嘲笑が容易になります。

実際の開発プロセスでは、フロントエンドとバックエンドが統一インターフェイスをネゴシエートし、それぞれが独自のタスクを開始しました。現時点では、バックグラウンドからデータを取得する必要がある次のような Ajax リクエストがあります。

$.ajax({
url: '/products/'
}).done(function(res) {
$('#result').html(res);
}); 
ログイン後にコピー

しかし、このサービスはまだ作成されていない可能性があります。おそらく、バックエンドを開発した人 (PHP、Ruby、.NET、GoldFusion などを使用するハンサムな男性) が辞めたか、他のことで忙しいのかもしれません。とにかく、このリクエストが行われると、期待する結果は得られず、404 (Not Found) エラーが発生するだけです。

これは本当にひどいもので、促しても無駄です。私の隣のテスターはテストするよううるさく言っていて、私はすぐに結果が知りたいと思っています。現時点では、自分自身に頼るしかありません。より良い方法の 1 つは、Ajax リクエストをシミュレートすることです。ここでは jQuery Mockjax プラグインを使用します。

アドレス: jQuery Mockjax

これは jQuery プラグインです。ダウンロードして引用する場合は、jQuery の後に配置します。

<!DOCTYPE html>
<html>
<head>
<title>Test</title>
</head>
<body>
<div id="result"></div>
<script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
<script src="vendor/jquery.mockjax.js"></script>
</body>
</html> 
ログイン後にコピー

次に、リクエスト コードの前にリクエストをシミュレートするコードを実行し、プラグインによって提供される $.mockjax() メソッドを使用し、2 つのパラメータ url と responseText を一時的に指定します。

$.mockjax({
url: '/products/',
responseText: 'Here you are!'
}); 
ログイン後にコピー

同じ URL の Ajax リクエストを監視し、リクエストが発行されたときにレスポンスをインターセプトしてシミュレートします。そのため、私のプログラムは問題なく実行できます。こちらです。この内容は div#result に表示されます。リクエストをモックする必要がなくなったら、$.mockjax.clear() メソッドを使用してリクエストをクリアできます:

$.mockjax.clear();

バックグラウンド サービスの開発が完了したら、このメソッドを使用してすべてのシミュレートされたリクエストをクリアし、実際のリクエストの効果を体験できます。すべてのシミュレーション リクエストを一度にクリアするのではなく、特定のシミュレーション リクエストをターゲットにする場合は、シミュレーション リクエストの ID を渡すと、各シミュレーション リクエストが ID 値を返します:

var idOne = $.mockjax({ }),
idTwo = $.mockjax({ });
$.mockjax.clear(idTwo); 
ログイン後にコピー

これにより、2 番目のシミュレーション リクエストがクリアされ、最初のシミュレーション リクエストが保持されます。

Ajax リクエストの URL アドレスは、シミュレートされたリクエストの URL に対応している必要があるため、ページ上に多数のリクエストがあると仮定すると、各リクエストをシミュレートするのは非常に困難になりますが、幸いなことに、プラグインの url パラメータは次のとおりです。ワイルドカードを提供します * メソッド:

$.mockjax({
url: '/books/*'
}); 
ログイン後にコピー

リクエストを URL アドレス /books/cook と照合するだけでなく、リクエストをアドレス /books/math などと照合することもできます。より複雑な照合パターンには正規表現を使用することもできます。

$.mockjax({
url: /^\/data\/(cook|math)$/i
}); 
ログイン後にコピー

プラグインの data パラメーターを使用して、さまざまなリクエスト データに基づいてさまざまなシミュレートされた応答を実行します。

$.mockjax({
url: '/books/',
data: {
type: 'cook'
},
responseText: 'You want a cook book!'
});
$.mockjax({
url: '/books/',
data: {
type: 'math'
},
responseText: {
"content": "You want a math book!"
}
}); 
ログイン後にコピー

同じURLアドレスであっても、要求したデータが異なると、得られる応答内容も異なります。応答コンテンツにはプレーン テキスト文字列に加えて、json
も使用できます。 フォーマット文字列。

プラグインには、デフォルトのパラメータ設定オブジェクト $.mockjaxSettings も用意されており、指定されていないパラメータには次のデフォルト値が使用されます。

$.mockjaxSettings = {
logging: true,
status: 200,
statusText: "OK",
responseTime: 500,
isTimeout: false,
throwUnmocked: false,
contentType: 'text/plain',
response: '',
responseText: '',
responseXML: '',
proxy: '',
proxyType: 'GET',
lastModified: null,
etag: '',
headers: {
etag: 'IJF@H#@923uf8023hFO@I#H#',
'content-type' : 'text/plain'
}
}; 
ログイン後にコピー
デフォルト値を変更すると、後続のシミュレーション リクエストでは変更された値が使用されます:


$.mockjaxSettings.contentType = "application/json"; 
ログイン後にコピー
ここでは contentType のデフォルト値のみが変更されます。


上記では、Ajax リクエストをシミュレートするための jQuery Mockjax プラグインの関連知識を例を通して説明しました。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Ajax リクエストのタイムアウトを延長するにはどうすればよいですか? Ajax リクエストのタイムアウトを延長するにはどうすればよいですか? Jan 26, 2024 am 10:09 AM

Ajax リクエストの有効期限を延長するにはどうすればよいですか?ネットワーク リクエストを行う場合、大量のデータや複雑な計算を処理する必要がある状況に遭遇することがよくあります。そのため、リクエストがタイムアウトしてデータが正常に返されない可能性があります。この問題を解決するには、Ajax リクエストの有効期限を延長することで、リクエストを確実に正常に完了させることができます。ここでは、Ajax リクエストの有効期限を延長する方法と具体的なコード例を紹介します。タイムアウト属性を使用して Ajax リクエストを行う場合、タイムアウト属性を次のように設定できます。

Ajax リクエストの有効期限が切れるまでどれくらい時間がかかりますか? Ajax リクエストの有効期限が切れるまでどれくらい時間がかかりますか? Nov 20, 2023 am 10:29 AM

AJAX リクエストには固定の有効期限がありません。「非同期 JavaScript および XML」は、Web ページ上で非同期リクエストを送信するためのテクノロジーです。JavaScript を使用して、ページ全体を更新せずにサーバーにリクエストを送信し、応答を受信します。

Yii フレームワークでコントローラーを使用して Ajax リクエストを処理する方法 Yii フレームワークでコントローラーを使用して Ajax リクエストを処理する方法 Jul 28, 2023 pm 07:37 PM

Yii フレームワークでは、コントローラーはリクエストの処理において重要な役割を果たします。通常のページ リクエストの処理に加えて、コントローラーを使用して Ajax リクエストを処理することもできます。この記事では、Yii フレームワークで Ajax リクエストを処理する方法を紹介し、コード例を示します。 Yii フレームワークでは、Ajax リクエストの処理は次の手順で実行できます。 最初の手順は、コントローラー (Controller) クラスを作成することです。 Yii フレームワークが提供する基本コントローラークラス yiiwebCo を継承できます。

プロジェクトに適切な Ajax リクエスト ライブラリを選択する方法 プロジェクトに適切な Ajax リクエスト ライブラリを選択する方法 Jan 30, 2024 am 08:32 AM

実用的なガイド: どの Ajax リクエスト ライブラリがあなたのプロジェクトに適していますか?フロントエンド開発の継続的な発展により、Ajax は Web 開発に不可欠な部分になりました。プロジェクトに適した Ajax リクエスト ライブラリを選択することは、開発効率を向上させ、ユーザー エクスペリエンスを最適化するために重要です。この記事では、読者が自分のプロジェクトに適したツールを選択できるように、一般的に使用される Ajax リクエスト ライブラリをいくつか紹介します。 jQueryAjax jQuery が最も人気のある JavaScript ライブラリの 1 つであることは否定できません。豊かな

必須ツール: 一般的に使用される Ajax リクエスト ライブラリについて理解していますか? 必須ツール: 一般的に使用される Ajax リクエスト ライブラリについて理解していますか? Jan 30, 2024 am 11:00 AM

開発の要点: 一般的に使用される Ajax リクエスト ライブラリについて調べてください。最新のフロントエンド開発では、非同期リクエストに Ajax を使用することが標準機能になっており、適切な Ajax リクエスト ライブラリを選択することで、ネットワーク リクエストをより効率的に処理できるようになり、開発効率とユーザー エクスペリエンスが向上します。この記事では、開発者がプロ​​ジェクトに適したツールを選択できるように、一般的に使用される Ajax リクエスト ライブラリをいくつか取り上げます。 jQueryAjax: 最も人気のある JavaScript ライブラリの 1 つである jQuery は、強力な Ajax リクエスト関数を提供します。

Ajax リクエストの有効期限をカスタマイズできますか? Ajax リクエストの有効期限をカスタマイズできますか? Jan 26, 2024 am 11:13 AM

Ajax リクエストの有効期限はカスタマイズできますか? Web 開発では、多くの場合、Ajax を使用して非同期リクエストを実装し、ページにデータを動的にロードします。 Ajax リクエストを行う場合、リクエストのタイムアウトを制御する必要がある場合があります。つまり、時間制限を設定し、指定された時間内に応答が受信されない場合にリクエストを処理する必要があります。では、Ajax リクエストの有効期限はカスタマイズできるのでしょうか?この記事では、この問題について詳しく紹介し、具体的なコード例を示します。 jQueryのAjax機能を利用する

Ajax リクエストがタイムアウトになる原因は何ですか? Ajax リクエストがタイムアウトになる原因は何ですか? Jan 26, 2024 am 10:53 AM

Ajax リクエストはどのような状況で期限切れになりますか? Web アプリケーションの開発に伴い、Ajax (非同期 JavaScript および XML) テクノロジは Web 開発の重要な部分になりました。 Ajax を通じて、サーバーからデータを取得し、ページ全体を更新せずに Web ページのコンテンツを動的に更新できます。ただし、Ajax を使用してリクエストを送信すると、リクエストの有効期限が切れる場合があります。では、Ajax リクエストはどのような状況で期限切れになるのでしょうか?

Ajax リクエストのタイムアウトを設定するにはどうすればよいですか? Ajax リクエストのタイムアウトを設定するにはどうすればよいですか? Jan 26, 2024 am 09:23 AM

Ajaxリクエストの有効期限を設定するにはどうすればよいですか?特定のコード例が必要 インターネット アプリケーションの開発に伴い、Ajax は Web 開発に不可欠な部分になりました。 Ajax リクエストを送信する場合、リクエストが長すぎてユーザー エクスペリエンスが低下したり、ブラウザがフリーズしたりすることを防ぐために、リクエストの有効期限を制限する必要がある場合があります。この記事では、Ajax リクエストの有効期限を設定する方法と具体的なコード例を詳しく紹介します。 Ajax リクエストの有効期限の設定には主に XMLHttpRequest が必要です

See all articles