我们的 web 应用在某些 IE 浏览器中渲染速度很快,在其他浏览器中渲染速度很慢……这似乎是一个 HTML 渲染问题……页面的前 10% 立即显示,最后 90% 最多需要 10 秒,这是静态内容。我使用 firefox/yslow 运行,渲染速度非常快。似乎与 ie 的某些用户/配置隔离。怪癖模式似乎没有什么不同。
是否有可以用来帮助我发现渲染瓶颈的工具或应用程序?我在我的代码中做了一些令人震惊的事情吗?可能是javascript问题吗?任何帮助或建议将不胜感激。谢谢。
我们的 web 应用在某些 IE 浏览器中渲染速度很快,在其他浏览器中渲染速度很慢……这似乎是一个 HTML 渲染问题……页面的前 10% 立即显示,最后 90% 最多需要 10 秒,这是静态内容。我使用 firefox/yslow 运行,渲染速度非常快。似乎与 ie 的某些用户/配置隔离。怪癖模式似乎没有什么不同。
是否有可以用来帮助我发现渲染瓶颈的工具或应用程序?我在我的代码中做了一些令人震惊的事情吗?可能是javascript问题吗?任何帮助或建议将不胜感激。谢谢。
使用Fiddler查看加载图片、css、js文件等的时间。也就是说,缓存是不是有问题?Javascript 肯定会在不同的浏览器版本中引起问题。您可以在某些版本中找到许多其他版本中没有的优化。此外,如果可能,请确保您的 html 是格式正确的 xhtml。页面的排列方式也会影响生活。如果你的文档树很深,它可能需要等待渲染大的部分,直到它读取所有的子节点。需要注意的另一件事是,某些工具栏和插件确实会提前加载,并且会减慢生活速度。HTTP 代理至少可以帮助您观察网络上发生的事情。
不确定这些想法是否可以帮助您解决确切的问题,但它们可以帮助整个生活。
如果它在 FF 或 Chrome 中运行得很快,那肯定是 javascript 问题。IE7 在处理大量脚本和复杂的 HTML 时非常慢。我们有一个共享点页面,在 IE 中渲染需要 10 秒,而在 FF 和 Chrome 中渲染不到 1 秒。我们通过向服务器端处理添加一个计时器并通过 Response.Write() 将输出发送到客户端来对页面进行基准测试。通过这样做,我们可以确定服务器处理页面的时间和客户端呈现页面的时间(因为您会在屏幕上看到计时器结果,然后等待 10 秒以等待其余时间呈现)。瓶颈是客户端上的 100% IE。这也解释了为什么速度在不同人的机器上是可变的,因为根据客户端机器的速度,页面将以 8-15 秒之间的某个速度呈现。
我们甚至让 MS 查看了这个问题,他们确认 IE 有一个更慢的“丰富渲染”引擎...... IE8 运行得更快,但这对今天的任何人都没有帮助。
您是否在 CSS 中使用任何行为?如果使用太多和/或如果它们影响太多元素,我已经看到行为会使应用程序崩溃。检查潜伏的任何 .htc 文件。
当然,行为只适用于 IE,并且它们使用 JavaScript,所以我确信不同的 IE 版本比其他版本更能胜任地处理它们。
有一个用于此类场景的特殊工具,称为 dynaTrace,可在以下网站免费获得:http: //ajax.dynatrace.com/pages/ 该工具可以真正帮助您,因为它几乎可以跟踪所有内容,并且专门为 IE 构建。
Steve Souders 就提高网页性能的 14 个(简单)步骤进行了出色的演示:
http://developer.yahoo.net/blogs/theater/archives/2007/08/steve_souders_high_performance.html
如果它挂在页面中间,我个人要做的第一件事就是确保或移动我所有的 JavaScript 都在页面底部。
IE 擅长表现不佳,尤其是 JavaScript,因此如果将其移至底部,IE 可以呈现页面,然后继续处理 JavaScript。
我使用HttpWatch解决 IE 中的链接资产(图像、脚本、css)、网络或 HTTP 相关问题。有免费和付费版本。免费很好,但您会失去一些不错的功能。