Прокладка
Если вы знакомы с рисунком переходника, то знаете, что такое регулировочная шайба. Оболочки перехватывают вызовы API и создают абстрактный слой между вызывающей стороной и целью. Обычно для обратной совместимости используются прокладки. Например, пакет npm es5-shim позволит вам написать синтаксис ECMAScript 5 (ES5) и не заботиться о том, работает ли в браузере ES5 или нет. Возьмем, к примеру, Date.now. Это новая функция в ES5, где синтаксис в ES3 будет new Date (). GetTime (). Если вы используете es5-shim, вы можете написать Date.now, и если браузер, в котором вы работаете, поддерживает ES5, он просто запустится. Однако, если в браузере запущен механизм ES3, es5-shim перехватит вызов Date.now и просто вернет new Date (). GetTime () < / em> вместо этого. Этот перехват называется шиммингом. Соответствующий исходный код es5-shim выглядит так:
if (!Date.now) {
Date.now = function now() {
return new Date().getTime();
};
}
Полифилл
Полифиллинг - это просто специализированный вариант прокладки. Polyfill предназначен для реализации недостающих функций в API, тогда как прокладка не обязательно должна быть столько для реализации недостающих функций, сколько для исправления функций. Я знаю, что это кажется слишком расплывчатым, но там, где прокладки используются как более широкий термин, полифилл используется для описания прокладок, которые обеспечивают обратную совместимость для старых браузеров. Таким образом, в то время как прокладки используются для прикрытия старых грехов, полифиллы используются для возвращения будущих улучшений в прошлое. Например, в IE7 нет поддержки sessionStorage, но полифиллы в sessionstorage Пакет npm добавит эту функцию в IE7 (и старше), используя такие методы, как сохранение данных в свойстве name окна или использование файлов cookie.
person
Kjetil Klaussen
schedule
30.07.2015