2

私の懸念はパフォーマンスですが、有効なHTMLの代わりにクライアントXMLを送信する理由はありますか?ほとんどのものと同様に、私はそれがアプリケーションに依存していると確信しています。私の特定の状況は、データベースからプルされたWebページに大量のコンテンツが挿入されている場合です。

どちらのアプローチの利点は何ですか?コンテンツのサイズも問題ですか?または、XMLを使用する場合、JavaScriptがXMLをHTMLに処理する時間は、最初にHTMLを送信するために必要だった余分な時間を相殺しますか?

ありがとう、ジェフ

4

3 に答える 3

5

AJAXは、その頭字語に従って何年も厳密に守られていません。これは、「非同期にロードされたコンテンツ」の単なるモニカです。

最近のほとんどのAJAXはJSONで実行されます。

JSONまたはその他(XMLでさえ)を介してデータとしてHTMLを使用するかどうかは、実際にはアプリケーションの特定のニーズに依存します。その点で、AHAHは実際にはAJAXのサブセットにすぎません。

クライアント側にデータを解析/レンダリングさせることで得られるメリットがない場合は、サーバー側にそれを実行させてHTMLを返すだけです。

于 2010-04-13T16:50:25.470 に答える
3

HTMLをフェッチする場合でも、HTMLを処理せずにDOMに直接貼り付けてはならないことを認識することが重要です。安全なプロトコルを介して送信されない場合、MITM攻撃を受ける可能性があります。XMLの解析で節約された時間は、スクリプトの挿入を防ぐためにHTMLのサニタイズに費やされます。

XMLもより移植性があります。XMLで提供されるデータは、どのページのどこでも使用できます。HTMLはこの点で異なりますが(CSSでスタイルを設定することはできますが)、コンテンツをDOMに挿入しなくても、すべてのブラウザーですぐに利用できるパーサーがあるわけではありません。持っているものもありDOMDocument()ますが、クロスブラウザの目的でそれを信頼することはできません。XMLを使用すると、XPathを使用して、必要なデータを簡単にターゲットにして抽出することもできます。HTML(x-browser)を使用する場合は、最初にDOMに挿入するか、実際には使用すべきではない、信頼性の低い正規表現メソッドを使用する必要があります。

JSONはより軽量で、XMLとHTMLに伴う多くの大部分を排除します。JavaScriptオブジェクトのネイティブマークアップであるため、解析も非常に簡単です。XMLやHTMLとは異なり、JSON with Padding(JSONP)を使用してクロスドメインでJSONデータにアクセスすることもできます。

要約すると、ニーズに最適な方法を選択する必要があります。JSONは非常に軽量で、ドメインを越えてアクセスでき、JavaScriptで解析するのにほとんど労力を必要としないため、最近ではほとんどの人がJSONを使用する傾向があります。

于 2010-04-13T17:00:54.330 に答える
1

JSON(Javascript Object Notation)は、軽量でネイティブのJavascriptであるため、XMLよりも頻繁に使用されます。

そうは言っても、必要なのがXMLの場合は、XMLをプルバックします。

HTML、XML、またはJSONをいつ使用するかについての良いページがあります

これが2つの違いについての良いページです。

JSONは、主にパフォーマンス上の理由で使用されます。そのページの例を使用するには:

XML:

<?xml version=’1.0′ encoding=’UTF-8′?>
<card>
  <fullname>Bala Arjunan</fullname>
  <org>PH</org>
  <emailaddrs>
   <address type=’work’&gt;abcd@xyz.com</address>
   <address type=’home’ pref=’1′&gt;me@mailme.com</address>
  </emailaddrs>
  <telephones>
   <tel type=’work’ pref=’1′&gt;+12345678</tel>
   <tel type=’mobile’&gt;+1234 1234</tel>
  </telephones>
  <addresses>
   <address type=’work’ format=’B'>1234 Oil Mill St Chennai, IND</address>
   <address type=’home’ format=’B'>5678 Oil Mill St Chennai, IND</address>
  </addresses>
  <urls>
   <address type=’work’&gt;http://balaarjunan.wordpress.com/</address>
   <address type=’home’&gt;http://balaarjunan.wordpress.com/</address>
  </urls>
</card>

JSON:

{
  “fullname”: “Bala Arjunan”,
  “org”: “PH”,
  “emailaddrs”: [
    {"type": "work", "value": "abcd@xyz.com"},
    {"type": "home", "pref": 1, "value": "me@mailme.com"}
  ],
  “telephones”: [
    {"type": "work", "pref": 1, "value": "+12345678"},
    {"type": "mobile", "value": "+1234 1234"}
  ],
  “addresses”: [
    {"type": "work", "format": "us", "value": "1234 Oil Mill St Chennai, IND"},
    {"type": "home", "format": "us", "5678 Oil Mill St Chennai, IND"}
  ],
  “urls”: [
    {"type": "work", "value": "http://balaarjunan.wordpress.com/"},
    {"type": "home", "value": "http://balaarjunan.wordpress.com/"}
  ]
}

JSONを使用すると、冗長性がはるかに少なくなります。

OTOH、プレーンな古いHTMLを送信することも非常に効果的です。あなたはあなたのデータについて考えなければなりません。テキストの段落を更新するだけの場合は、htmlを送信するだけです。アイテム、またはJavascriptで操作または使用するアイテムのコレクションを扱っている場合は、JSONが必要です。RSSフィードまたはその他のXMLを非同期的に更新する場合は、XMLを要求します。

HTMLはXMLのサブセットにすぎないことを忘れないでください。xHTMLはすべてのxmlルールに従います。javascriptに対応しているブラウザ(すべて)は、JSON(Javascript)とHTML(XML)を理解できます。データの使用方法に基づいて、プロジェクトに適したものを選択してください。

于 2010-04-13T16:55:23.683 に答える