1. 程式人生 > >JavaScriptPolyfillShim 在JavaScript中Shim和Polyfill有什麽區別?

JavaScriptPolyfillShim 在JavaScript中Shim和Polyfill有什麽區別?

世界 實現 blank spa 文章 target script 就是 新的

原文鏈接

在JavaScript的世界裏,有兩個詞經常被提到,那就是Shim和Polyfill,它們指的都是什麽,又有什麽區別?在本文中,將簡短的給大家介紹他們之間的聯系和區別。
Shim

一個shim就是一個庫,它將一個新的API引入到一個舊的環境中,而且僅靠舊環境中已有的手段實現,Shim有時候也稱為shiv,比如著名的HTML5兼容庫html5shiv,Github地址:https://github.com/aFarkas/html5shiv。


Polyfill

在2010年10月份的時候,Remy Sharp在博客上發表了一篇關於術語”polyfill”的文章,一個polyfill是一段代碼(或者插件),提供了那些開發者們希望瀏覽器原生提供支持的功能。

因此一個polyfill就是一個用在瀏覽器API上的shim,我們通常的做法是先檢查當前瀏覽器是否支持某個API,如果不支持的話就加載對應的polyfill,然後新舊瀏覽器就都可以使用這個API了,術語polyfill來自於一個家裝產品Polyfilla

Polyfilla是一個英國產品,在美國稱之為Spackling Paste(譯者註:刮墻的,在中國稱為膩子),記住這一點就行:把舊的瀏覽器想象成為一面有了裂縫的墻,這些polyfill會幫助我們把這面墻的裂縫抹平,還我們一個更好的光滑的墻壁(瀏覽器)

JavaScriptPolyfillShim 在JavaScript中Shim和Polyfill有什麽區別?