在此过程中,我发现使用iframe是一种“糟糕的做法”。
这是真的吗?使用它们的利与弊是什么?
在此过程中,我发现使用iframe是一种“糟糕的做法”。
这是真的吗?使用它们的利与弊是什么?
当前回答
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.
其他回答
与所有技术一样,它也有起起伏伏。如果您使用iframe来绕过一个开发良好的站点,那么这当然是不好的做法。然而,有时iframe是可以接受的。
iframe的一个主要问题与书签和导航有关。如果您只是使用它在内容中嵌入一个页面,我认为这是可以的。这就是iframe的作用。
然而,我也看到过iframe被滥用。它永远不应该被用作网站的组成部分,而应该是网站中的一部分内容。
通常情况下,如果不使用iframe就可以实现,那是一个更好的选择。我相信在座的其他人可能会有更多的信息或更具体的例子,这一切都取决于你想要解决的问题。
话虽如此,如果你仅限于HTML,不能访问后端,如PHP或ASP。NET等,有时iframe是你唯一的选择。
不了解它们的缺点就使用它们是“不好的做法”。Adzm的帖子总结得很好。
另一方面,gmail在后台大量使用iFrames来实现一些更酷的功能(比如自动上传文件)。如果你意识到iframe的局限性,我相信你不应该对使用它们感到内疚。
它们并不坏,但实际上很有帮助。我有一个巨大的问题前一段时间,我必须嵌入我的推特饲料,它只是不让md做在同一页上,所以我把它设置在不同的页面,并把它作为一个iframe。
它们还很好,因为所有浏览器(包括手机浏览器)都支持它们。只要你正确地使用它们,它们不能被认为是一种坏习惯。
当您的主页以HTTP协议加载,而页面的某些部分需要以HTTPS协议工作时,iFrame可以轻松击败jsonp。
特别是,如果你的数据类型不是原生的json,需要在服务器上翻译成json,并在客户端翻译回复杂的html。
所以iFrame并不是邪恶的。
从可用性的角度来看,最初的框架集模型(框架集和框架元素)非常糟糕。IFrame是后来的发明,它不像最初的框架集模型那样有那么多问题,但它确实有它的缺点。
如果您允许用户在IFrame内部导航,那么链接和书签将不能正常工作(因为您收藏了外部页面的URL,而不是IFrame的URL)。