JSON polyfill: JSON 2 или JSON 3?
Мне нужен JSON polyfill для поддержки IE 7 и некоторых режимов IE 8 и IE 9. Должен ли я выбрать JSON 2 или JSON 3? Очевидно, что JSON 3 является более современной реализацией, но, например, такой сайт, как html5please даже не упоминает об этом и рекомендует JSON 2.
3 ответов
в HTML5, пожалуйста обновил свою страницу JSON, чтобы включить JSON 3 как главный polyfill для пользы, с JSON 2 принимая заднее сиденье как более старая замена.
мне было интересно то же самое. JSON3 говорит:
изменения от JSON 2
JSON 3...
- правильно сериализует примитивные объекты-обертки (выпуск #28).
- бросает!--0--> при сериализации циклических структур (в формате JSON 2 повторяется, пока не переполнится стек вызовов).
- использует характеристика тесты для того чтобы обнаружить сломанные или неполный уроженца реализации JSON (JSON 2 проверяет только наличие собственных функций). Тесты выполняются только один раз во время выполнения, поэтому при анализе или сериализации значений нет дополнительных затрат на производительность.
в отличие от JSON 2, JSON 3 не...
- добавить
toJSON()
методыBoolean
,Number
иString
прототипы. Они не являются частью какого-либо стандарта и являются избыточными по замыслуstringify()
реализация.- добавить
toJSON()
илиtoISOString()
методыDate.prototype
. См. примечание о сериализации даты ниже.
JSON 3 polyfill совместимое с почти все платформы JavaScript. Это drop-in замена для в формате JSON 2 который использует функцию тесты обнаружение сломанных и неполных собственных реализаций JSON, поддержка асинхронные загрузчики модуль и
has
-aware оптимизаторы, и построен к стандартам спецификации.в формате JSON 2 - это старый, альтернатива полифилл Дугласа Крокфорда.
использовать json2.js, если вы хотите улучшить производительность своей страницы в IE7 (и, возможно, 8). Я с удовольствием использовал json3 в течение нескольких месяцев, а затем я увидел этот вопрос и провел некоторые исследования. Все jsperf выполняли 1-2x быстрее с json2.js в моей виртуальной машине IE7.
пример: