在此过程中,我发现使用iframe是一种“糟糕的做法”。
这是真的吗?使用它们的利与弊是什么?
在此过程中,我发现使用iframe是一种“糟糕的做法”。
这是真的吗?使用它们的利与弊是什么?
当前回答
iframes肯定有用处。你还会怎么把天气网络小部件放在你的页面上?唯一的另一种方法是获取XML并解析它,但是当然,您需要条件来抛出pertenant天气图形……不太值得,但如果你有时间,会更干净。
其他回答
从可用性的角度来看,最初的框架集模型(框架集和框架元素)非常糟糕。IFrame是后来的发明,它不像最初的框架集模型那样有那么多问题,但它确实有它的缺点。
如果您允许用户在IFrame内部导航,那么链接和书签将不能正常工作(因为您收藏了外部页面的URL,而不是IFrame的URL)。
不了解它们的缺点就使用它们是“不好的做法”。Adzm的帖子总结得很好。
另一方面,gmail在后台大量使用iFrames来实现一些更酷的功能(比如自动上传文件)。如果你意识到iframe的局限性,我相信你不应该对使用它们感到内疚。
与所有技术一样,它也有起起伏伏。如果您使用iframe来绕过一个开发良好的站点,那么这当然是不好的做法。然而,有时iframe是可以接受的。
iframe的一个主要问题与书签和导航有关。如果您只是使用它在内容中嵌入一个页面,我认为这是可以的。这就是iframe的作用。
然而,我也看到过iframe被滥用。它永远不应该被用作网站的组成部分,而应该是网站中的一部分内容。
通常情况下,如果不使用iframe就可以实现,那是一个更好的选择。我相信在座的其他人可能会有更多的信息或更具体的例子,这一切都取决于你想要解决的问题。
话虽如此,如果你仅限于HTML,不能访问后端,如PHP或ASP。NET等,有时iframe是你唯一的选择。
当您的主页以HTTP协议加载,而页面的某些部分需要以HTTPS协议工作时,iFrame可以轻松击败jsonp。
特别是,如果你的数据类型不是原生的json,需要在服务器上翻译成json,并在客户端翻译回复杂的html。
所以iFrame并不是邪恶的。
值得注意的是,无论用户的互联网连接速度或iframe的内容如何,iframe都会导致页面下载速度出现轻微(0.3秒左右)但明显的放缓。这是您在本地测试时不会看到的。实际上,添加到页面中的任何元素都是如此,但iframes似乎更糟糕。