在JavaScript的世界裡,有兩個詞經常被提到,shim和polyfill.它們指的都是什麼,又有什麼區別? 一個shim是一個庫,它將一個新的API引入到一箇舊的環境中,而且僅靠舊環境中已有的手段實現 一個polyfill就是一個用在瀏覽器API上的shim.我們通常的做法是先檢查當前瀏覽器是否支援某個API,如果不支援的話就載入對應的polyfill.然後新舊瀏覽器就都可以使用這個API了.術語polyfill來自於一個裝潢產品Polyfilla: Polyfilla是一個英國產品,在美國稱之為Spackling Paste(譯者注:刮牆的,在中國稱為膩子).記住這一點就行:把舊的瀏覽器想象成為一面有了裂縫的牆.這些[polyfills]會幫助我們把這面牆的裂縫抹平,還我們一個更好的光滑的牆壁(瀏覽器) Paul Irish釋出過一個Polyfills的總結頁面“HTML5 Cross Browser Polyfills”.es5-shim是一個shim(而不是polyfill)的例子,它在ECMAScript 3的引擎上實現了ECMAScript 5的新特性,而且在Node.js上和在瀏覽器上有完全相同的表現(譯者注:因為它能在Node.js上使用,不光瀏覽器上,所以它不是polyfill).
shim和polyfill有什麼區別
相關文章
- vue和react有什麼區別?VueReact
- modbus和tcp有什麼區別?TCP
- Jsp和Servlet有什麼區別?JSServlet
- SpringBoot和Spring有什麼區別?Spring Boot
- Cache 和 Buffer 有什麼區別?
- RPA和IPA有什麼區別
- int 和 Integer 有什麼區別
- rancher 和 Kubernetes有什麼區別?
- QPS和TPS有什麼區別?
- Hifi和ONT 有什麼區別
- Iterator和ListIterator有什麼區別
- DOM和BOM有什麼區別?
- xpath和dom有什麼區別?
- Activity和Fragment有什麼區別Fragment
- HTTP和HTTPS有什麼區別?HTTP
- mongodb和mysql有什麼區別MongoDBMySql
- python和nodejs有什麼區別PythonNodeJS
- VPS和HTTP有什麼區別?HTTP
- session 和 cookie 有什麼區別?SessionCookie
- float和double有什麼區別?
- @Controller和@RestController有什麼區別?ControllerREST
- cookie和session 有什麼區別?CookieSession
- ReferenceError和TypeError有什麼區別?Error
- cookie是什麼?和session有什麼區別?CookieSession
- Java和Python是什麼?有什麼區別?JavaPython
- 什麼是 MicroPython?和CPython有什麼區別?Python
- IPFS和區塊鏈有什麼區別區塊鏈
- xpgu是什麼 xgpu和xgp有什麼區別GPU
- Python語言中=和==有什麼區別?Python
- JMS和AMQP有什麼區別嗎MQ
- maven </dependencies>和</dependencyManagement> 有什麼區別Maven
- 命令和事件有什麼區別? - Oskar事件
- linux和ubuntu區別是什麼?有什麼關係?LinuxUbuntu
- 什麼是報表工具?和 EXCEL 有什麼區別?Excel
- Java 介面和抽象類是什麼,有什麼區別Java抽象
- 什麼是SCRM系統?和CRM有什麼區別?
- png是什麼格式 png和jpg有什麼區別
- VIPER 和 MVVM 到底有什麼區別MVVM