ASPX页面快速呈现FF& Chrome浏览器但浏览速度慢

时间:2013-06-04 09:22:51

标签: c# jquery asp.net performance internet-explorer

我有一个包含几张大桌子的页面。加载此页面或触发事件对Chrome来说足够快,但当我在IE7中运行时,页面速度很慢。

有时,如果我点击按钮,则需要几秒钟才能加载,而不是使用Chrome或FF进行即时操作。

我用谷歌搜索了一下这个问题的解决方案,我尝试了HTML验证器。如果我以HTML格式保存页面并将其插入验证器中,则会出现1K +错误,其中大多数错误都是未关闭的标记。

如果我检查ASP代码,这是非常有限的,因为所有代码都是用对象动态编写的(我没有编写自己的HTML代码),我的所有代码都关闭了,我没有收到任何警告或Visual Studio中的错误。

在这个页面中,我使用jQuery和一些自定义JavaScript(没有复杂的东西)。 我的所有数据都来自SQL服务器,如果我一次运行所有查询,它仍然不到一秒,非常确定这些查询是尽可能写的。

知道如何在IE中加快网站速度吗? (不幸的是,90%的用户拥有IE7)

2 个答案:

答案 0 :(得分:1)

在没有看到任何代码的情况下,很难断言为什么会出现这些性能问题。我能想到的一件事是jQuery如何在IE7中运行

简单地说,当你在jQuery中使用选择器时(比如$(".some-class")),jQuery将使用本机函数document.querySelectorAll,它使用CSS选择器查询DOM(除非你使用jQuery特定的选择器如:animated)。但是,IE7没有querySelectorAll方法的实现,这导致jQuery以更迭代的方式搜索DOM。我不完全确定这是如何工作的,但我确信可以找到sizzlejs.org

现在,如果您在IE7中有一个非常大的HTML文档,并且您正在将事件附加到表中的每一行,如下所示:$(".some-class-that-marks-as-clickable").click(...),jQuery必须查找所有这些行并应用处理程序。如果是这种情况,可以通过在每个可点击元素上使用onclick属性来轻松补救。

当然,由于您尚未发布任何代码,我无法保证这是您的问题。我只知道几年前我遇到了那个确切的问题,导致IE7在45秒内渲染页面,而Firefox在不到一秒的时间内完成。

答案 1 :(得分:1)

我建议您在firefox上安装插件yslow,并检查插件为您的网站提供的评分类型以及它为优化网站提供的建议。

另外,你应该知道IE 6-8在编译javascript和DOM操作时非常慢。我所知道的最简单的识别javascript减速的方法是简单地从你的页面中逐一注释掉javascript函数,直到网站开始快速加载。然后,您将优化您认为缓慢加载的任何函数。