ASPX页面使用FF可以快速渲染;Chrome,但在IE上很慢
本文关键字:Chrome 但在 IE FF ASPX | 更新日期: 2023-09-27 18:16:45
我有一个有几个大表格的页面。当加载此页面或触发事件时,Chrome足够快,但当我在IE7中运行此页面时,页面很慢。
有时,如果我点击一个按钮,它需要几秒钟才能加载,而不是即时行动与Chrome或FF。
我在谷歌上搜索了一下,找到了这个问题的解决方案,我尝试了HTML验证器。如果我以HTML格式保存一个页面并将其插入验证器中,我会得到1K+错误,其中大多数错误是未关闭的标记。
如果我检查ASP代码,这是非常有限的,因为所有的代码都是用对象动态编写的(我没有写自己的HTML代码),我所有的标签都是关闭的,我在Visual Studio中没有得到一个警告或错误。
在这个页面中,我使用jQuery和一些自定义JavaScript(没什么复杂的)。我所有的数据都来自SQL server,如果我一次运行所有的查询,它仍然不到一秒钟,很确定这些查询是尽可能最好的。
任何想法我可以使网站更快在IE?(不幸的是90%的用户使用IE7)
我建议你在firefox上安装这个插件yslow,然后检查一下这个插件给你的网站打了什么分,以及它对优化网站有什么建议。
另外,你应该知道ie6 -8在编译javascript和DOM操作方面非常慢。我所知道的最粗糙的识别javascript变慢的方法是,简单地将javascript函数从页面中注释掉,一个接一个,直到网站开始快速加载。然后你可以优化你认为加载缓慢的函数
在没有看到任何代码的情况下,很难断言为什么会出现这些性能问题。我能想到的一件事是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在不到一秒的时间内完成。