AJAXノート-データ転送形式

1776 ワード

HTML
メリット:
転送するのは直接HTML形式の内容で、innerHTML=XMLHttpRequestを直接使用することができる.操作を取得するためにresponseTextを使用します.
欠点
複数の部分を更新する場合、responseTextコンテンツの分割は容易ではありません.
XML var result = XMLHttpRequest.responseXML
返されるのはXMLドキュメントで、解析を行い、HTMLドキュメントに再編成する必要があります.通常は次のようなTagNameなどで取得します.
var data = result.getElementsByTagName("data")[0]...
xmlの内容を取得し、様々なノードを作成することで、HTMLドキュメントdocumentを独自に構築する.createElemnt...
メリット:
XMLは一般的なデータフォーマットで、定義されたフォーマットにデータを押し付ける必要がなく、DOMを利用してデータを完全に解析することができます.
欠点:
ドキュメントがサーバから来た場合は、ドキュメントに正しいヘッダ情報が含まれていることを確認する必要があります.ドキュメントタイプが間違っている場合、responseXMLの値は空になります.ブラウザが長いXMLファイルを受信すると、DOM解析はかなり複雑になります.
JSON JavaScript Object Notation
//データフォーマット
	window.onload = function(){
		var jsonObject = {
				"name":"high", //  json          
				"age":12, //       ,        
				"address":{"country":"China","City":"WuHan"}, //        json  
				"speak":function(){console.log("Hello json")} //     
		};
		console.log(jsonObject.name)
		console.log(jsonObject.age)
		console.log(jsonObject.address.country)
		jsonObject.speak(); //    ,    ()
	};

JSONで伝送するデータ会議文字列の方式はXMLHttpRequestに置く.responseTextにあります.
javascriptでは、eval関数は文字列を実行可能なjavascript文に変換できます.
json形式の文字列の場合、evalで直接jsonオブジェクトに変換できます.
var jsonStr = "{'name':'high'}";
var testObject = eval("("+ jsonStr + ")");//注意変換にはかっこを付ける必要があります
メリット:
データ転送フォーマットとしてはJSONとXMLが似ており,使い勝手がよりスマートである.JSONはサーバ側から特定のコンテンツタイプを含むヘッダ情報を送信する必要はない(xmlのようなヘッダ情報は不要).
欠点:
文法が厳格すぎて、コードはxmlほど読みやすいわけではありません.eval関数にはリスクがあります.転送された文字列を実行できます.悪意のあるコードかもしれません.
<完>