使用iframe来提高页面性能是一种可接受的方法吗?

问题描述:

我有一个复杂的页面,有像画廊,地图,广告等几个用户控件。使用iframe来提高页面性能是一种可接受的方法吗?

我试着优化它们,确保完全分离html/css/js,将js放在页面的底部,试图确保我的代码都写得很好,但是唉,我的页面仍然很慢。这对现代浏览器来说并不明显,但可以查看统计信息和IE6/7。

因此,我现在正在寻找我们之前为Adtech flash crap所做的工作 - 一个iframe。除了在这些控制中我不担心的SEO影响,人们会认为这是一种方法吗? PROS和CONS请。

感谢, 丹尼斯

+0

'

+0

试试yslow一个Firefox的插件用于性能测试 – Grumpy 2010-03-19 14:56:36

+0

对于你认为慢/快的一些数字怎么样。 – Samuel 2010-03-19 15:02:54

iframes不是世界末日,但也许你可能想尝试ajax。然后页面可以立即加载一些装载gif的小部件。然后为每个小部件创建一个新的ajax请求,在repsonse上,加载gif将被替换为小部件数据。

更新:我想“懒加载”是这个正确的术语。

+1

是的,我同意。使用“延迟加载”方法。包括jQuery或其他一些AJAX库,然后添加其他脚本或自己制作的其他脚本,使用AJAX添加其他脚本或元素。这样,在等待加载剩余内容时不会进行阻塞。 – Graza 2010-03-19 15:05:06

+0

延迟加载在某些情况下是选项,但不适用于Google地图。 – 2010-03-19 15:18:17

+0

我还没有使用谷歌地图api,但有什么特别的原因,为什么懒加载将无法正常工作?您可能需要深入研究一下如何实施一两个或两个以确保事物在正确的位置出现,但它应该是可能的? – Graza 2010-03-19 17:18:06

什么会真正提高你的页面的表现就是serve the content from different subdomains

例如,你可以去疯了,有一个js.example.comimages.example.com一个www.example.com,让用户的浏览器在一个时间内完成更多的事情,因为大多数浏览器允许最多每个域两个下载的。当然,通常做的是有一个static.example.com和一个www.example.com,因此保持它比普通网络服务器稍微复杂一点。

这给你的其他优点:

  • static server可以在未来到期日远起到采取浏览器的缓存的优势。
  • 你可以从静态服务器strip almost all headers,减少带宽。
  • 你静态的服务器将不运,动态(www.)服务器可以设置(请记住,每次您设置的cookie被每个请求发送),reducing bandwidth饼干。

此外,您应该走得更远,同时缩小静态内容并使用服务器站点压缩(GZIP)来提供内容。


对于广告服务器,请尝试使用良好的提供商,并将所有广告内容都保留在页面底部。如果访问者进入您的页面,但由于浏览器正忙于等待广告加载,他只会为他提供一个空白页面,他会离开,如果您给他的内容和,然后加载广告,他会最可能会停留在网站上以查看广告。

+0

+1有趣的想法,我知道SO使用这个:-) – 2010-03-19 14:59:11

+0

我们为静态做。和图像。 想过更多或CDN,但没有真正看到价值,因为下载时间一般都很好。这是浏览器计算和js执行通常是问题。 – 2010-03-19 15:21:01

添加一个iframe只会引发火焰战争,你应该使用Firebug和Yslow(都是Firefox的附加组件),这会告诉你它为什么运行缓慢,并告诉你如何加快速度向上。

+0

我对这两方面都非常熟悉,并且已经通过了许多建议,在这一点上CDN。 – 2010-03-19 15:19:29

说到网络用户界面,越少越好。如果你的网页速度很慢,也许你应该分开你的控件,使它们不被同时显示出来。

一旦你想为你的页面添加书签,iFrame往往是一团糟。他们不会加速任何事情。

如果您正在寻找有选择地加载内容,请查看AJAX技术。

最后,也许有点题外话,关于搜索引擎优化很好看的:http://powazek.com/posts/2090

曾经有很多使用熔断器箱式页面,多个控制人,这是可收藏的,应该加快事情了。虽然任何类型的框架通常都会被折服。