使用 Modernizr 加载 HTML5 Shiv 的性能
Performance using Modernizr to load HTML5 Shiv
我的网站使用Modernizr,需要HTML5Siv和PrintShiv。不使用 Modernizr 加载这些 shiv,而是通过 IE 条件加载它们是否有任何性能优势?显然,使用 Modernizr 更干净,但我专注于性能。
我自己很好奇,所以我设置了一些测试页面来查看。
如果你的网站只需要HTML5Shiv和PrintShiv从modernizr,那么只加载html5shiv-printshiv.js使用IE条件将比总是为所有其他浏览器加载modernizr(lt IE 9)表现更好。因此,在您的情况下,您可能应该停止使用 modernizr,而只是在有条件的情况下使用 siv。
对于需要 shiv 的 IE 浏览器,负载/性能在使用 modernizr 和仅使用 html5shiv 之间是相等的。仅在现代IE浏览器(IE9和IE10)上可以看到使用html5siv的性能提升。
测试页面:
- 仅限HTML5shiv-printshiv:http://jsbin.com/upozar/1
- 自定义现代化:http://jsbin.com/erodog/1
使用IE9/电缆的测试报告:
- HTML5shiv-printshiv only: http://www.webpagetest.org/result/130131_PG_11S8/
- 自定义现代化:http://www.webpagetest.org/result/130131_JG_11SE/
比较这些测试,完全加载,我们使用html5shiv-printshiv节省了1.677秒.js
现代化更新:有关更多详细信息,请阅读在现代化 GitHub 项目的发行单中起草的性能注意事项文档。
最新版本的 Modernizr 可以自定义为仅包含您需要的功能。如果您担心性能,这可能是要走的路。
Modernizr核心在性能方面并不是非常昂贵;费用在于它所做的所有测试。如果您将其自定义为仅执行需要执行的测试,则可以节省大部分负载,但您仍将拥有Modernizr核心及其所需的部分。
我更喜欢将HTML5Siv与Modernizr一起使用,并避免使用条件。通过这种方式,我有了代码清理器,避免了不必要或重复的东西。IE的性能是相同的,因为HTML5SHiv将只加载小于9的IE,直接使用Modernizr或HTML5Siv。但是HTML5Siv对于其他浏览器来说不是必需的,所以,也许,对于性能使用条件来说,这是一个好主意。
- 函数参数中的数据与指定变量之间的任何性能差异
- 提高JQuery的性能
- 使用正则表达式评估电子邮件地址时出现性能问题
- React:按键的性能提升
- 在Three.js中导出网格会提高性能吗
- 在javascript中搜索项目列表的性能
- 为什么在许多浏览器中drawImage()的性能略好于createPattern()
- JavaScript数组优化以提高性能
- React+Redux性能优化与组件ShouldUpdate
- 在循环中附加事件处理程序时出现浏览器性能问题
- JavaScript-===vs===运算符性能
- 超时功能的性能
- Pg承诺性能提升:在冲突中
- HTML5 Shiv谷歌CDN链接不工作
- immutable.js与嵌套映射/对象的比较/相等性能
- NodeJ中的注释会影响性能吗
- 如果条件为循环-性能差异
- <脚本类型=“;模块“>负载性能
- 我应该如何将响应数据保存在对象(json)中以获得更好的操作和性能
- 使用 Modernizr 加载 HTML5 Shiv 的性能