DjangoのAjaxの操作

アヤックス

AJAX(非同期JavaScriptおよびXML)、JavaScriptは非同期ネットワークを実行するための要求として理解することができます。単語の人気の理解なしAjax技術が存在しない場合、(それはテキスト、画像のラインであっても)ページの小さな部分を変更したら、ページ全体をリロードする必要があります、その後、アヤックスで、ページ上達成することができますがジャンプしないではありませんページの背景、更新ページのコンテンツの一部にデータを提出するよう、ケースを更新します。

ブラウザがHTTP要求を行い、HTTP応答を受信するようにコアが、ブラウザによって提供されるXMLHttpRequestオブジェクトに依存していることを特徴とします。ブラウザは、その後、XHRの復帰など、他のものは、ページを再レンダリングするデータを受信しますか

アヤックスではJQuery

ネイティブのAjaxにjQueryのは、非常に簡単に、このような特定のメソッドの多くは非常に良いパッケージをしました A J A バツ アヤックス、 .post、$に.get、$ .getJSONなどをすることができます、次のモードで各種パラメータを書かれた、シンプルな分析を行うには、より簡潔な書き込み、$アヤックス例を呼び出すために異なるニーズに基づいて行うことができます成功したAjaxリクエストは、そして、実際には$ .postを使用することができます グラム E トン 二つ もっと フランス 作ります 使用 比較的に もっと しかし それはあります 理由 ソリューション .getどちらの方法は、より多くのを使用していますが、理解すること 、この一般的な方法アヤックスは、カプセル化の原理をよく理解していることができます。

 $.ajax({
 	type: //数据的提交方式:get和post
 	url: //请求地址
 	async: //是否支持异步刷新,true(异步)或 false(同步)
 	data: //需要提交的数据
 	dataType: //服务器返回数据的类型,例如xml,String,Json等
 	success:function(data){
 	} //请求成功后的回调函数,参数data就是服务器返回的数据
 	error:function(data){
 } //请求失败后的回调函数,根据需要可以不写,一般只写上面的success回调函数
 })

AjaxのjQueryのは、コールバック、成功、エラー、完全な3をカプセル化された最も一般的である:
成功:成功したコールバック要求の後に
エラー:コールバック要求に失敗しました。
完了:要求(リクエストが成功または失敗と呼ばれている)コールバック関数を完了しています。

限り、要求に関係なく、成功または失敗の呼び出します、完了すると完了します。完全と呼ばれる順番に、必ずしも成功を呼び出しません。それはあなたが成功を呼び出す場合、完全呼ぶようです。(ステータスコード404403301302は...限り間違いが呼び出されませんよう、完全に入力されます)

前部および後部は、送信データの符号化形式のcontentTypeを終了します

  • URLエンコード
    データ形式に対応する:名前linwowl&パスワード666 = =
    バックエンドデータ取得:request.POST
    PSは、Djangoが自動的request.POSTに符号化されたデータを解析するURLエンコード
  • FORMDATA
    符号化フォーマット形式のファイル転送構成
    ファイル形式のデータ取得の後端:request.FILESは
    データを取得後、共通鍵:request.POSTを
  • ファイルアプリケーション/ JSON
    Ajaxのデータ伝送フォーマットJSON

Ajaxのデフォルトの送信データの符号化形式がURLエンコードされます。フロント及びリアエンドデータを送信する場合、データは符号化に対応

データ転送フォーマットのAjaxのJSON

$('#d1').click(function () {
	$.ajax({
		url:'',  // url参数可以不写,默认就是当前页面打开的地址
		type:'post',
		contentType:'application/json',
		data:JSON.stringify({'name':'llinwow','hobby':'study'}),
		success:function (data) {}
	})
});

Ajaxの転送ファイル

$('#d1').click(function () {
	let formdata = new FormData();
	// FormData对象不仅仅可以传文件还可以传普通的键值对
	formdata.append('name','llinwow');
	// 获取input框存放的文件
	//$('#i1')[0].files[0]
	formdata.append('myfile',$('#i1')[0].files[0]);
	$.ajax({
		url:'',
		type:'post',
		data:formdata,
		// ajax发送文件需要修改两个固定的参数
		processData:false,  // 告诉浏览器不要处理我的数据
		contentType:false,  // 不要用任何的编码,就用我formdata自带的编码格式,django能够自动识别改formdata对象
		// 回调函数
		success:function (data) {
			alert(data)
		}
	})
});

類似点と相違点を持つフォームAjaxフォーム

  • フォームの送信フォームは、非同期パーシャルリフレッシュをサポートしていません。
  • フォームフォームのトランスポート、JSON形式のデータをサポートしていません。
  • データを送信するためのデフォルトのエンコーディングフォーマットでAjaxフォームフォームはURLエンコードされています

利点:

  1. ページを更新せずに、ページ内のため、待機時間を短縮し、ユーザーエクスペリエンスを向上させる、サーバーと通信します。
  2. サーバとの非同期通信を使用して、レスポンスが速くなります。
  3. 元のサーバーの中には、ブロードバンドリースのスペースとコストを節約し、サーバおよび帯域幅の負担を軽減、アイドル処理するクライアントの機能を使用して、クライアントに転送する作業することができます。
  4. プラグインやアプレットをダウンロードすることなく、標準化し、広くサポートされている技術に基づいています。

短所

  1. 戻るブラウザのバック・ページでサポートされていないこと、操作することはできません。
  2. 検索エンジンのサポートは比較的弱いです。
  3. 例外処理メカニズムは、プログラムに影響を与える可能性があります。

おすすめ

転載: blog.csdn.net/linwow/article/details/92006879