在此过程中,我发现使用iframe是一种“糟糕的做法”。
这是真的吗?使用它们的利与弊是什么?
在此过程中,我发现使用iframe是一种“糟糕的做法”。
这是真的吗?使用它们的利与弊是什么?
当前回答
与所有技术一样,它也有起起伏伏。如果您使用iframe来绕过一个开发良好的站点,那么这当然是不好的做法。然而,有时iframe是可以接受的。
iframe的一个主要问题与书签和导航有关。如果您只是使用它在内容中嵌入一个页面,我认为这是可以的。这就是iframe的作用。
然而,我也看到过iframe被滥用。它永远不应该被用作网站的组成部分,而应该是网站中的一部分内容。
通常情况下,如果不使用iframe就可以实现,那是一个更好的选择。我相信在座的其他人可能会有更多的信息或更具体的例子,这一切都取决于你想要解决的问题。
话虽如此,如果你仅限于HTML,不能访问后端,如PHP或ASP。NET等,有时iframe是你唯一的选择。
其他回答
在许多情况下与它们一起工作,我真的认为iframe在web编程中相当于goto语句。也就是说,这是通常要避免的。在站点中,它们可能有些用处。然而,对于跨站点来说,除了最简单的内容,它们几乎总是一个坏主意。
考虑一下可能性……如果用于参数化的内容,它们已经创建了一个接口。在专业网站中,该接口需要SLA和版本管理——在急于上网时,这些几乎总是被忽略。
如果用于活动内容(承载脚本的框架),则存在(不同的)跨域脚本限制。有些可能会被黑客攻击,但很少持续。如果你的框架内容需要交互性,那么它就很难超越框架。
如果与授权内容一起使用,那么参与站点需要在主机之间将授权信息移出频带。
因此,尽管在站点中偶尔有用,但它们并不适合混搭。您最好查看真正的门户和portlet。更糟糕的是,它们是每个网络业余爱好者的宠儿——许多技术经理已经抓住它们作为许多问题的解决方案。事实上,他们创造了更多。
Based on my experience a positive side for iframe are when calling third party codes, that may involve calling a javascript that calls a has a Document.write(); command. As you may know, these commands cannot be called asynchronously due to how it is parsed (DOM Parser etc). An example of this is http://sourceforge.net/projects/phpadsnew/ I've made use of iframes to help speed up our site as there were multiple calls to phpadsnews and the site was waiting for the response before proceeding to render different parts of the page. with an iframe I was able to allow the site to render other parts of the page and still call the Document.write() command of phpads asynchronously. Preventing and js locking.
不了解它们的缺点就使用它们是“不好的做法”。Adzm的帖子总结得很好。
另一方面,gmail在后台大量使用iFrames来实现一些更酷的功能(比如自动上传文件)。如果你意识到iframe的局限性,我相信你不应该对使用它们感到内疚。
我曾看到IFRAMEs作为一种制作动态上下文菜单的简单方法被成功地应用,但该web应用的目标受众只是ie用户。
我想说这完全取决于你的要求。如果您希望确保页面在每种浏览器上都能正常运行,请避免使用IFRAMEs。如果你的目标是一个狭窄的和知名的观众(例如。在本地内部网),并且您看到了使用IFRAMEs的好处,那么我会说这样做是可以的。
iframes肯定有用处。你还会怎么把天气网络小部件放在你的页面上?唯一的另一种方法是获取XML并解析它,但是当然,您需要条件来抛出pertenant天气图形……不太值得,但如果你有时间,会更干净。