Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何提高我的站点IE6/7 JS性能?_Javascript_Jquery_Performance_Internet Explorer - Fatal编程技术网

Javascript 如何提高我的站点IE6/7 JS性能?

Javascript 如何提高我的站点IE6/7 JS性能?,javascript,jquery,performance,internet-explorer,Javascript,Jquery,Performance,Internet Explorer,因此,我最近参与了一个站点重写,我们在各个方面都比以前有了很大的改进(不,这并不完美,我们按照截止日期生活,并且一直在改进:D)但有一个例外:在IE6/7中,页面显示后它将锁定。我知道这是JS,因为它被禁用了,速度很快,我知道我们使用的simplegallery插件非常慢,但即使这样,谷歌广告被删除了,它仍然处于爬行状态(+8秒)。我已经浏览了Firebug profiler并进行了大量的JS/CSS更改,例如: 将除img错误处理之外的所有JS移到页面底部 改进所有jQuery选择器以获得最

因此,我最近参与了一个站点重写,我们在各个方面都比以前有了很大的改进(不,这并不完美,我们按照截止日期生活,并且一直在改进:D)但有一个例外:在IE6/7中,页面显示后它将锁定。我知道这是JS,因为它被禁用了,速度很快,我知道我们使用的simplegallery插件非常慢,但即使这样,谷歌广告被删除了,它仍然处于爬行状态(+8秒)。我已经浏览了Firebug profiler并进行了大量的JS/CSS更改,例如:

  • 将除img错误处理之外的所有JS移到页面底部
  • 改进所有jQuery选择器以获得最佳性能
  • 移动到jQuery1.4
  • 通过JS Lint运行我们的核心定制JS(main.JS)
  • spring常用图像
  • 降低CSS选择器的复杂性
这样做对所有浏览器都有好处,我知道我可以做得更多,但我没有看到我需要的IE6/7的重大改进。我们确实在IE7中使用DD_roundies_0.0.2a.js,但在IE6中不使用。我尝试了DynaTrace,但看不到任何明显的东西,尽管我确实有点迷失在它的深处

有人能看到我在这里遗漏了什么和/或指向一些好的IE分析工具吗

编辑:我应该提到我已经通过了YSlow、PageSpeed和Chrome的开发工具。以上提到的大部分改进都基于这些改进。在这一点上,我并不是说该网站是完全光影,但它是好的,并在正确的方向上移动。然而,我在IE6/7中有一个问题,我相信这是JS执行的问题


编辑2:我们已经从服务器发送了IE6的Chrome框架元标记。这不是一个解决方案,但我认为它对IE6的好处大于坏处。现在我正在寻找JS的特定反馈,因为我想我已经涵盖了所有其他基础。

如果您将jquery从中包括进来,那么如果您将它放在您的网站上,它的下载速度会更快


另外,请查看Firebug的插件,它会为您提供大量信息,说明您可以做些什么来缩短站点的加载时间。

如果您想让用户安装Google Chrome框架,它将使IE使用Chrome渲染器和javascript引擎


您可以在IE6中手动评测“common.js”脚本。 只需在战略位置抓取一个新的时间戳,并在最后提醒他们

e、 g

function ts() { return (new Date).getTime(); }
var t0 = ts();
// some of your code
var t1 = ts();
// rest of your code
var t2 = t();
alert(t1-t0); // milliseconds between t0 and t1
alert(t2-t0); // ms between t0 and t2
可能脚本的一部分比其他部分慢得多。

或者可能只是IE6

目前唯一可疑的是“omniture.js”

这是我找到的一篇关于的博客文章


您可以在Chrome上使用来调试速度问题。当然,js的速度将取决于V8引擎。

javascript本身通常不是问题所在,而是当您修改DOM时,您最终会遇到麻烦,例如设置动画、添加和删除元素。要特别注意不透明度。

看一看关于如何并行加载脚本的内容

直到最新一代的 在浏览器中,标签有一些 真的很糟糕 它的特点。即, 标记“block”,意思是 停止所有其他正在进行的工作 在页面上加载/发生,而 它们在执行时加载和修改。不 只有它们才能阻止地球的所有其他部分 页面,他们甚至用来停止 加载任何其他标签


谢谢你的意见。已通过YSlow很多,页面速度(将提到上面)。至于jQuery,我更喜欢它在google上,因为它更有可能被用户缓存。另外,我不确定下载速度是否是问题所在,我认为更多的是JS执行。改用(1.4.0而不是1.4)会稍微快一点,因为客户端可以缓存它,但您必须更新新1.4.*版本的url。谢谢Kimble。但是你认为这个url有什么问题?当我检查标题时,它是Cache-Control:public,必须重新验证,代理重新验证,max-age=3600,12天后过期。我错过了什么吗?“如果你把它放在你的网站上,下载速度会更快”——最好是跨域传播——现代浏览器一次下载的东西不会超过两个。整个镀铬框架毫无意义。让用户使用Chrome(或任何其他像样的网络浏览器)。Chrome Frame绝对不是一个解决方案,因为Corports和backward IT管理员(不是粗鲁,但IT人员仍然想要IE6,他一定是个白痴或太懒了,对吧?)不会允许。也就是说,我们已经有条件地为IE6发送了少量的数据!很抱歉,99%都是笑话。我觉得你是我公司最大的客户,只使用IE6。你唯一能做的就是优化,因为IE6的javascript引擎很弱。如果您需要删除昂贵的功能,请执行此操作并告诉他们原因。另外,使用chromes profiler告诉您是否经常调用您的任何函数,这对我来说是最有效的。您可以使用IE6的一些可用漏洞,自己安装chromeframe。或者建议那些管理员使用install方法……只有在代码验证的情况下才应该使用XHTML;目前,您在两个文档中都有60多个错误;如果有人真的将其解析为XHTML而不是标记soup,那么他只会得到一条错误消息!