1

我有一页有几张大桌子。使用 Chrome 加载此页面或触发事件时速度足够快,但是当我在 IE7 中运行此页面时,页面速度很慢。

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

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

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

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

知道如何在 IE 中使网站更快吗?(可惜90%的用户有IE7)

4

2 回答 2

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 在不到一秒的时间内完成。

于 2013-06-04T11:25:15.810 回答
1

我建议您在 firefox 上安装插件yslow并检查该插件为您的网站提供了什么样的分数,以及它为优化网站提供了哪些建议。

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

于 2013-06-04T14:32:45.210 回答