2009-05-14 7 views
5

を注入VS:アヤックス:建物のHTML私たちはそれを更新せずにWebページを更新するためにHTTPAsyncRquestを使用してこれらの2つの方法を考えてみましょう、議論を作成していない、質問をするのStackOverflowの提案に準拠しようとするとHTML

1 )AsyncRequestによって返されたデータは、ページ を更新する結果のHTMLを構築するために解析/解釈されます。 JSON :: parseAndExecute(returnedData); //ただの例

2)AsyncRequestによって返されるデータは、実行され、ページを更新する生のjScriptです。例: プレーン古い:eval(returnedData); //私たちは知っていますreturnedDataは悪意のあるコードではありません

学問的/嗜好の問題を除外するために、サーバーとクライアントの両方をプログラミングするために全く同じフレームワークを使用すると仮定しましょう。それはJSONまたは生のjscriptを吐き出します。

このシナリオでは、技術的な理由がありますか?

生のJSCRIPTは、ほとんどの場合、高速で柔軟性が高いはずですが、私が見つけたほとんどのフレームワークはJSCRIPTを返さず、代わりにJSCRIPTによって解釈されるデータです。

(ただ、明確にする:????私は聞いてるのよ、それは小さい高速ですが、セキュリティ上のリスクcompatiblityリスク)のstackoverflowで

最初の投稿、あなたがた!

+0

あなたのための最初のupvote、ye!良い質問。 :-) – Cerebrus

答えて

1

2つ目のソリューションは一般に、実装が簡単で、実装が簡単で、帯域幅を少なくします。また、サーバー側とクライアント側の両方を制御して、 Ajaxフレームワークなら、セキュリティは問題ありません。だからあなたの唯一の問題は、あなたが(悪の)評価に終わることです。 IE8を除いて、あなたのコードに少なくとも1つの評価を持たずにJSONを "解析"する方法はないので、あなたはいつも持っている必要があります。

私たちはAjaxエンジンのJSONとHTMLの組み合わせを使用しています(実際のところ、innerHTML)。私たちは、ウィジェットの初期のレンダリング(または完全な更新)でinnerHTMLを使用していますが、JSONを使用してウィジェットの属性をプロパティに変更しています。

+0

Firefox 3にはJSONパーサーが付属しています。 –

1

@トーマスハンセン:

もっと速く簡単に実装できます。しかし、なぜそれがより少ない帯域幅を使用するのか分かりません。ページがロードされたJavascriptコードはキャッシュされ、解析とウィジェット作成のコードは一度だけダウンロードされ、動的なものは純粋なJSONになります。

他のGUIコールバックに応答して何らかの形でデータを変換/フィルタリングしているため、そのためにサーバーに依存したくないため、最初のオプション(JSON)を使用することもできます。

+0

まあ、 "解析"について話すとき、ほとんどの人は一般的にXMLをやってしまいます - 明らかにJSONよりも広いです... –

+0

それは確かに当てはまります。アングルブラック税は、ほぼすべてのネットワークリクエストに多くのオーバーヘッドを追加します –

関連する問題