IE 7およびいくつかのIE 8およびIE 9モードをサポートするためにJSONポリフィルが必要です。選択する必要があります- JSON 2 または JSON ?明らかにJSON 3はより新しい実装ですが、たとえば html5please のようなサイトはそれについても言及しておらず、JSONを推奨しています2.2。
HTML5お願いします JSONページを更新してJSON 3をメインのポリフィルとして使用し、JSON2は後部座席を使用します古い代替品。
私は同じことを考えていました。 JSON3によると :
JSON2からの変更
JSON 3 .. ..
- プリミティブラッパーオブジェクトを正しくシリアル化します(問題#28)。
- 循環構造をシリアル化するときに
TypeError
をスローします(JSON 2は、呼び出しスタックがオーバーフローするまで再帰します)。- 機能テストを利用して、壊れたまたは不完全なネイティブJSON実装を検出します(JSON 2は、ネイティブ関数)。テストは実行時に1回だけ実行されるため、値を解析またはシリアル化するときに追加のパフォーマンスコストは発生しません。
JSON 2とは対照的に、JSON 3はしません...
toJSON()
メソッドをBoolean
、Number
、およびString
プロトタイプに追加します。これらは標準の一部ではなく、stringify()
実装の設計によって冗長化されています。toJSON()
またはtoISOString()
メソッドをDate.prototype
に追加します。以下の日付のシリアル化に関する注記を参照してください。
JSON は、ほぼすべてのJavaScriptプラットフォームと互換性のあるポリフィルです。これは JSON 2 のドロップイン置換であり、機能テストを使用して壊れた不完全なネイティブJSON実装を検出し、 非同期モジュールローダー および
has
-対応するオプティマイザーであり、仕様標準に基づいて構築されています。JSON 2 は、ダグラス・クロックフォードによる古い代替ポリフィルです。
IE7(および場合によっては8)でページのパフォーマンスを向上させたい場合は、json2.jsを使用してください。私は何ヶ月もjson3を楽しく使っていましたが、それからこの質問を見て調査をしました。 IE7 VMのjson2.jsを使用すると、すべてのjsperfのパフォーマンスが1〜2倍速くなります。
一例: