我的网站使用Modernizr,并且需要HTML5Shiv和PrintShiv。不使用Modernizr加载这些shivs,而是通过IE条件加载它们是否有任何性能优势?显然使用Modernizr更清晰,但我专注于性能。
答案 0 :(得分:3)
我很好奇,所以我设置了一些测试页面来看。
如果您的网站仅需要来自modernizr的带有PrintShiv的HTML5Shiv,那么使用IE条件加载仅html5shiv-printshiv.js将比其他所有浏览器(lt IE 9)始终加载modernizr更好。因此,在您的情况下,您可能应该停止使用modernizr并在条件中使用shiv。
对于需要shivs的IE浏览器,使用modernizr和html5shiv之间的负载/性能是相等的。仅在现代IE浏览器(IE9和IE10)上可以看到使用html5shiv的性能提升
测试页面:
使用IE9 / Cable测试报告:
比较那些完全加载的测试,我们使用html5shiv-printshiv.js节省了1.677秒
Modernizr更新:阅读Modernizr的GitHub项目中的问题单中正在起草的Docs on Performance Considerations,了解更多详情。
答案 1 :(得分:3)
可以自定义Modernizr的最新版本,仅包含您需要的功能。如果你担心性能,这可能就是你要走的路。
Modernizr核心在性能方面并不是非常昂贵;费用是它所做的所有测试。如果您将其自定义为仅执行您需要执行的测试,您将节省大部分负载,但您仍将拥有Modernizr核心及其所需的部分。
答案 2 :(得分:1)
我更喜欢将HTML5Shiv与Modernizr一起使用,并避免使用条件。通过这种方式,我可以使代码更清晰,避免不必要或重复。 IE中的性能是相同的,因为HTML5SHiv将仅使用小于9的IE加载,直接使用Modernizr或HTML5Shiv。但是对于其他浏览器来说HTML5Shiv并不是必需的,所以,对于性能使用条件,它可能是个好主意