编程语言
首页 > 编程语言> > IE 6性能与干净,不引人注目的Javascript

IE 6性能与干净,不引人注目的Javascript

作者:互联网

通常我喜欢保持我的HTML代码干净,语义和免费的Javascript或CSS.我在顶部包含了我的.JS和.CSS文件,在DOM元素的顶部包含了图层功能.

积极的是:

>关注的建筑分离
>不支持Javascript或CSS的优雅降级
>搜索引擎的友好性

有一个主要的负面因素:

> IE 6中的性能问题

因为所有事件都通过访问DOM的Javascript代码附加到元素,所以IE中的性能会受到影响.

使用jQuery(恰好是我最喜欢的Javascript框架)时尤其如此.

所以看起来我有两个选择:要么保持代码好又整洁,并让IE 6用户(大约20%的用户群)抱怨,或者“去规范化”代码以提高IE 6的性能.

在这种情况下是否存在“中途”?还是我注定了?

注意:我不是说我的性能问题是由于在单独的文件中使用Javascript引起的.

我可以在IE中实现精彩的性能,同时将其保存在单独的文件中.

问题是,我仍然需要将实际的事件处理程序放入HTML中的“onclick”属性中.例如:

<span onclick="doSomething()">More...</span>

如果我能写下来会更好:

<span id="more-button">More...</span>

然后使用以下命令在Javascript中单独分配它:

$("#more-button").click(doSomething);

不幸的是,这似乎对IE6性能不利.

解决方法:

在YUI Theatre的一个talk中,Joseph Smarr讨论了性能,并表示可以在代码中出于性能原因而不是找到DOM元素然后附加事件处理程序而在代码中使用onmousedown处理程序等.但是,我不知道采取什么措施来加快速度.用于不显眼的性能提升的其他技术是(EIDT:注意它们与浏览器无关,因此不限于IE):

>使用onmousedown而不是onclick. Smarr说两次事件发射之间有100毫秒左右的时间.
>感知性能:使用window.setTimeout(visualFeedback,0)提供即时视觉反馈.这让浏览器可以立即绘制一些图形变化,让用户知道发生了什么.
>当你必须遍历DOM时,将中间结果缓存到一个变量中以重用它们(猜猜你知道那个).

还有一个demo显示前两点的好处.顶部的按钮使用onclick和正常执行,下面的按钮使用onmousedown和setTimeout(func,0).

标签:html,javascript,performance,cross-browser,internet-explorer-6
来源: https://codeday.me/bug/20190827/1742067.html