XML ドキュメント
Ajaxリクエストの処理で返されるのは、HTML構造に似たデータ形式ですが、これはHTMLコードではなく、XML形式のデータです。Ajaxxは、Ajaxによって定義されたデータ送信の形式であるXMLです。
- XMLはExtensibleMarkup Language(EXtensible Markup Language)の略です
- XMLはマークアップ言語であり、HTMLではなくHTMLに非常によく似ています。
- XMLは、データを表示するのではなく、データを送信するように設計されています
- XMLタグは事前定義されていません。あなたはあなた自身のラベルを定義する必要があります
事前定義されたタグとカスタムタグ。カスタムタグは、タグ名に独自の名前を付けたり、htmlなどのタグを事前定義したりできます。
.xmlファイル
声明头:<?xml version = "1.0" encoding = "utf-8"?>
<?xml version="1.0" encoding="utf-8" ?>
<jibenxinxi>
<xuesheng>
<xingming>小明</xingming>
<xuehao>10001</xuehao>
<xingbie>男</xingbie>
<shengao>180</shengao>
<tizhong>70</tizhong>
</xuesheng>
</jibenxinxi>
見せびらかす
前のケースで返されるデータは
<ul>
<li>学号:10001</li>
<li>姓名:小明</li>
<li>性别:男</li>
<li>年龄:18</li>
<li>身高:180</li>
<li>体重:70</li>
</ul>
返されるのは文字列でラップされたHTML構造であるため、xhr.responseTextを使用して受信します。これにより、innerHTMLをスプライシングに使用でき、文字列内のHTML構造をプロセスで識別できます。
Element.innerHTML = xhr.responseText; この構造はこの時点でページにレンダリングできます
XMLの欠点
HTMLの構造体が返される場合、返される構造体は固定構造体である必要がないため、現時点ではスケーラビリティが低くなります。たとえば、現在返されるのはulとliの構造体ですが、この時点でのページの関数はこれには適用されませんulとliの構造なので、自分で拡張する必要があります。現時点では、JOSN形式を考えています。
JSON
XMLとJSONの比較:XMLでできること、JSONでもできること、JSONでできること、XMLではできない場合があります
- JSONはより豊富なデータ構造を持っています; XMLはタグペアを介してのみ実装できます
- JOSNには配列とオブジェクト設定があり、相互にネストすると、データがより豊富になる可能性があります。XMLは、タグを介してのみ区別およびネストできます。
- JSONは軽量で、コンテンツはありませんがデータです。XMLにはデータ以外に冗長なタグ構造があります
質問:現在学習しているAjaxによって読み取られたデータはすべて文字列です。返されたデータがJSONであっても、xhr.responseTextによって文字列として認識されます。
方法1 :eval()ステートメントを使用します。eval()ステートメントは文字列をコードステートメントに変換できます
var data = xhr.responseText;
var obj = eval("("+data+")")
eval()は基本的にJavaScriptステートメントを変換するため、返された結果をeval()関数に直接配置することはできません。したがって、HTML構造コードを認識させたい場合は、括弧を使用してラップできます。
方法2 :組み込みのコンストラクター関数を使用する
var obj = (new Function("return"+xhr.responseText))()
組み込みコンストラクターを使用してターンアラウンドを行い、関数の戻り値を使用して文字列を削除します
方法3 :(一般的に使用される)JSON.parseメソッド
var obj = JSON.parse(data)
IE6および7と互換性があるため、最も長く使用されるのはこの方法です。したがって、これらの互換性は基本的に考慮されていません。
JOSN.parse()メソッドとJSON.stringify()メソッドはペアであり、JSON.parse()は文字列をJSON形式に変換し、JSON.stringify()メソッドはJSON形式を文字列に変換します