shim 和 polyfill 兼容處理

shim 和 polyfill

https://hk.saowen.com/a/f3f08fd11740f8fa1eff56c94c04a555ae3cdb9530cbdbd49461ccd7c5403b32

shim 是一個函式庫 Libary, 它將一個新的 API 引入到一箇舊的環境中, 而且 "僅靠舊環境中已有的手段" 實現。

polyfill 是 shim 的一種, 它的 API 是遵循標準的。 polyfill 的做法通常是: 先檢查瀏覽器是否支持某個標準 API, 如果不支持,就 "使用舊的技術" 對瀏覽器做 "兼容處理", 這樣就可以在舊的瀏覽器上使用新的標準 API。

但在實際情況下,我們一般説 shim, 會特指它的 API 不是遵循標準的,與 polyfill 對立。

上面介紹的兩種方法,前者是 shim, 而後者是 polyfill。 polyfill 的設計理念更值得去推崇。

:D

我的理解:兩個都是為了解決 “向下兼容”

但一般說法上, p 特指先去 “判斷” 是否有該標準, “針對沒有標準的情況”,做兼容處理。

s 則是指,使用一個 “特別” 的方法,避免兼容問題。

s 作法,未來若不需要兼容了,s 的 code 就是多餘的,而且要改回正規作法,又是一個成本。 p 的話就只要刪除那段 code 就好了。

results for ""

    No results matching ""