【发布时间】:2014-04-28 18:04:50
【问题描述】:
在http://html5please.com 中列出的每个功能都说与 Polyfill 或 Fallback 一起使用。我想知道两者有什么不同?请帮助我理解不同之处。
提前致谢。
【问题讨论】:
在http://html5please.com 中列出的每个功能都说与 Polyfill 或 Fallback 一起使用。我想知道两者有什么不同?请帮助我理解不同之处。
提前致谢。
【问题讨论】:
Polyfill 用相同的功能替换了该功能,但使用受支持的技术实现,因此您仍然可以在新浏览器中使用相同的 API。例如,classList 仅从 IE10 开始支持,但您可以添加一个用 js 编写的脚本,将 classList 对象添加到任何 dom 元素,这样您就无需重写代码来检测浏览器或功能。
Fallback 通常用简化的功能或第三方插件甚至错误消息替换该功能。比如浏览器不支持video标签,可以换成flash插件。
UPD:您也可以查看this 问题了解更多信息。
【讨论】:
与 Polyfill 一起使用意味着有一些 JavaScript 代码可以用来做或多或少与本机浏览器功能相同的事情。
与 Fallback 一起使用意味着使用 JavaScript 模拟该功能是不切实际的,您应该提供一些后备功能,以便该页面仍然可以在功能较弱的浏览器上运行,尽管功能有所减少。
【讨论】:
Polyfill: Web 开发中的 polyfill 是在不支持该功能的 Web 浏览器上实现该功能的代码。它通常是指实现 HTML5 或 CSS Web 标准的 JavaScript 库,既可以是已建立的标准(某些较旧的浏览器支持),也可以是现有浏览器上的提议标准(任何浏览器都不支持)。根据定义,“polyfill 是浏览器 API 的垫片”。
后备:该功能通常被通用功能、第三方插件,甚至是作为后备的错误消息替换。
【讨论】: