shim和polyfill有什麼區別?


shim 是硬墊片,polyfill 是軟墊片。

硬墊片可能被感覺到,軟墊片基本感覺不到。

What is the difference between a shim and a polyfill?


polyfill 是 shim 的一種。

shim 是將不同 api 封裝成一種,比如 jQuery 的 $.ajax 封裝了 XMLHttpRequest 和 IE 用 ActiveXObject 方式創建 xhr 對象;

polyfill 特指 shim 成的 api 是遵循標準的,其典型做法是在IE瀏覽器中增加 window.XMLHttpRequest ,內部實現使用 ActiveXObject。

在實際中為了方便做對比,會特指 shim 的 api 不是遵循標準的,而是自己設計的。


推薦閱讀:

qq空間背景音樂是如何實現頁內跳轉時不間斷播放的?
網站根目錄沒有索引文件 ( index.html ) 會影響 SEO 嗎?
為什麼在 HTML 發展初期開發者使用表格元素排版?
HTML5 中的 b/strong,i/em 有什麼區別?
「Radio Button」的來歷是什麼?

TAG:前端開發 | HTML | CSS | JavaScript | HTML5 |