我的网站使用Modernizr并需要HTML5Shiv和PrintShiv。如果不使用Modernizr来加载这些shivs,而是通过IE条件加载它们,是否有性能优势?显然,使用Modernizr更清晰,但我关注的是性能。
我的网站使用Modernizr并要求HTML5Shiv和PrintShiv。不使用Modernizr通过IE条件加载这些shivs会提高性能吗?尽管使用Modernizr更为简洁,但我着重关注性能。
我的网站使用Modernizr并需要HTML5Shiv和PrintShiv。如果不使用Modernizr来加载这些shivs,而是通过IE条件加载它们,是否有性能优势?显然,使用Modernizr更清晰,但我关注的是性能。
我的网站使用Modernizr并要求HTML5Shiv和PrintShiv。不使用Modernizr通过IE条件加载这些shivs会提高性能吗?尽管使用Modernizr更为简洁,但我着重关注性能。
我自己也很好奇,所以我设置了一些测试页面来查看。
如果您的网站只需要使用HTML5Shiv和modernizr中的PrintShiv,那么仅在IE条件下加载html5shiv-printshiv.js会比始终为所有其他浏览器(lt IE 9)加载modernizr表现更佳。因此,在您的情况下,您应该停止使用modernizr,只在条件下使用shiv。
对于需要shiv的IE浏览器,使用modernizr和仅使用html5shiv的加载/性能相等。仅使用html5shiv的性能提升在现代IE浏览器(IE9和IE10)上可见。
测试页面:
使用IE9 / Cable进行测试报告:
比较这些测试,完全加载时,使用html5shiv-printshiv.js可以节省1.677秒。
Modernizr更新: 阅读Modernizr GitHub项目上的问题票中正在起草的性能考虑文档以获取更多详细信息。
最近版本的Modernizr可以自定义包含您需要的功能。如果你担心性能问题,这可能是一个好方法。
就性能而言,Modernizr核心并不会很昂贵;代价在于它所进行的所有测试。如果您将其定制为仅执行您需要执行的测试,那么您将节省大部分负载,但仍然拥有Modernizr核心和您需要的部分。
<script src=...>
来完成。如果您确实需要 Modernizr 中的其他功能,则无疑应该使用捆绑的 shiv,因为您将仅使用一个 script 标签而不是两个。脚本标记(无论是外部还是内联)都会影响性能,因此您需要将它们最小化。两个变体的运行时性能成本真的微不足道。 - Paul Irish