網絡在快速發展中,新的框架、工具甚至語言來來去去。然而,許多程序員不得不将速度調整到和最慢更新的用戶一樣快。
新浏覽器在後台自動更新,不需要許可,并且在新的API方面正在實現跨越式發展。然而即使現代浏覽器也在不同的時間實現不同的功能,即便你認為是潮流的功能在幾年之後未必還是潮流。
如果對所有網友進行調查,很可能現在還有用戶在使用IE9,你可以選擇繼續編代碼,或者将所有内容委托給jQuery或一些框架? 這裡還有一個不錯的選擇讓程序員永遠不需要在糾結于浏覽器版本:polyfill。
Polyfill是什麼?為什麼需要它?
Remy Sharp在2009年的書和博客中創造了這個詞。如果浏覽器中存在該功能,則polyfill會讓浏覽器執行其操作,如果沒有,則擴展單元會插入缺少的功能。polyfill填補了舊版浏覽器的漏洞,對于缺少的功能,它可以使用非本地代碼複制本機API。
所以polyfill就足以提供所有ES6功能,也許你使用classList API添加和删除類,或者使用matchMedia進行媒體查詢,但是仍然使用IE9。這裡還有一個很棒的服務,可以促使你選擇polyfill。
Polyfill.io是“Financial Times”開發的開源計劃。它目前每天可收到多達2.04億個請求,并将其描述為“一個規範的聚合庫”。這種Polyfills-on-demand交付系統使程序員能夠仔細閱讀說明并決定是否使用。
理想情況下,程序員将實際需要的多重填充功能發送給特定浏覽器,并且隻發送特定浏覽器實際需要的Polyfill。Polyfill.io可以實現這兩個需求,該服務不會向新版浏覽器傳遞過多支持,而是讀取User-Agent HTTP頭,以便它隻能傳遞必要内容。新版浏覽器将收到幾乎空的文件,舊版本的IE則将收到一個巨大的代碼包。
程序員可以通過查詢字符串中指定要使用的功能列表來減輕傳遞給舊機器的代碼重量。如果省略,将使用一組默認值。使用該服務一定要查看HTTP請求,但它的易用性是值得肯定的。
Polyfill.io非常全面,它包括一些流行的浏覽器API,如Fetch和Promises。但API遠遠不足以滿足程序員的需求,Polyfill目前還存在許多待填充的新興API,如果程序員感興趣,不妨加入到其中,一起來完善這個不錯的項目吧。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!