我为什么不使用HTML框架?

时间:2009-07-29 21:11:14

标签: html frame frames frameset

自1998年以来我没有使用过框架。它们看起来是个坏主意,在我的所有开发中,我从未遇到过框架是正确的解决方案,甚至是一个不错的解决方案。

但是,我现在正在处理由另一个组编写的内部Web应用程序,整个站点都内置在 - 标题,左侧菜单,右侧内容 - 框架集中。

首先,当VPN连接到我的网络时,我经常无法找到“website.com/frames.html”。“错误消息。当我在内部网络时,这不会发生。

其次,该应用程序具有内置的电子邮件/消息系统。未读消息的数量在左侧菜单框中显示为“消息(3)”,但在读取消息时计数不会更新。开发人员告诉我,因为它在一个框架中我需要右键单击菜单并“刷新”。严重????

所以,我的编程相关问题是,你有什么理由不使用网站中的框架?

8 个答案:

答案 0 :(得分:15)

虽然他们在创建时解决了一个问题(更新了“页面”的一部分,同时保留了非更新部分),但是框架集从一开始就被批评了可用性,因为它们破坏了通用性浏览器的功能,例如:

  • 书签,复制并粘贴要共享的网址
  • 打印屏幕上显示的页面
  • 重新加载页面:由于网址一般没有更改,您通常会被带回网站的主页或默认框架集;手动重新加载某些帧是可能的,但对用户来说并不明显
  • 后退和前进按钮不明确:撤消/重做最后一帧更改,还是带您到最后一次更改网址栏?

如果您使用任何服务器端语言生成HTML,即使它提供的所有内容都是“服务器端包含”,避免框架集(包括每页上相同内容)的最沉重负担也是微不足道的。与框架集不同,服务器端包含可能出现在页面的任何位置;使用服务器端脚本语言或模板系统构建站点也有其他明显的优势。

能够在不重新加载整个内容的情况下更新页面的小区域仍然是一个优点,这可以通过AJAX实现。这有时会导致人们创建与上面概述的框架集的所有问题的接口,但这不是支持框架集的论据。同样,使用精心设计的AJAX功能构建的站点可以实现框架集甚至无法解决的问题。

答案 1 :(得分:10)

今天避免使用框架的一个很好的理由是它们已在HTML 5中被弃用:Chapter 11 Obsolete features

  

11.2不符合要求

     

以下列表中的元素完全过时,绝不可以   作者使用:

     

[...]

     

<强>帧

     

<强>框架

     

<强>无框架

     

使用iframe和CSS代替,或使用服务器端包含   生成包含各种不变部分的完整页面。

答案 2 :(得分:8)

#1的原因?用户讨厌他们。

即使它们在其他领域(代码分离,应用程序设计,速度等)提供了优势,它们也是用户界面的一部分。如果用户不批准,请不要使用它们。

答案 3 :(得分:7)

当您拥有静态网站时,框架非常有用,例如,避免在所有页面中重复导航菜单。它还减少了页面的整体大小。

这两个论点现在已经过时了:网站毫不犹豫地为胖页面提供服务,而且大多数都是动态构建的,所以包括这些导航部分(或状态等)都没有问题。

“为什么”部分在上面得到了很好的回答,部分是由你自己的问题解决的(你遇到了一个限制,虽然可以用一点JS来覆盖)。

答案 4 :(得分:6)

我不使用框架的第一个原因是因为它们破坏了浏览器的书签(也就是最喜欢的)功能。

凭借当今存在的技术,框架已经过时。但是,如果您的遗留项目仍然使用它们,您可以使用某些ajax更新消息。

答案 5 :(得分:4)

仅仅因为手机iPad热潮并不意味着功能强大的全功能网站突然“过时”,那些决定使框架集过时的人似乎是同样的抱怨者,他们从来没有发现他们的全部潜力第一名,或者他们可能是大型企业手机和平板电脑制造商的说客,他们无法为他们的网络屏幕制作一个体面的框架浏览器。

不可否认,iFrames可以处理简单的工作,例如滚动和/或在单个页面中显示独立的段,并且我在我自己的基于框架的网站中使用它们,但是为了让它们工作以及为网站本身就是一场噩梦。相信我,我知道,因为我的网站是互联网上最复杂的基于框架集的网站之一,我一直在寻找将它全部转移到iFrames的优点和缺点。梦魇是轻描淡写。

我已经可以听到抱怨者说:“那你为什么一开始就这样建造呢?” ......答案是答:因为我不懒。和B:因为基于帧的站点是基于信息的站点的功能最多,视觉上吸引人且用户友好的格式,其具有数百页内容而不必依赖于服务器。我的意思是除了外部广告之外的所有广告都可以直接通过闪存驱动器查看。不需要MySQL或PHP。

以下是我遇到的一些问题:

  • 使用JavaScript可以轻松处理对孤立页面的异议。
  • 除非您不使用任何帧,否则关于书签的异议是无关紧要的。
  • 可以使用“添加书签”JavaScript功能
  • 处理内容特定的书签
  • 关于SEO的异议很容易通过XML站点地图和JavaScript来处理。
  • 使用标准框架集布置动态大小的框架更容易,更可靠。
  • 使用标准框架集,可以更轻松地从外部框架中定位和替换嵌套框架集。
  • 内部脚本,如JavaScript搜索和非服务器相关的购物车,对于使用iFrames而言似乎不太可能,或者如果它们是,那么让它们工作比使用标准帧更麻烦。< / LI>

所有这一切,我喜欢iFrames的单页吸引力,当他们实际上可以像我们现在的标准框架一样轻松地为我的网站做所有相同的事情,那么我将迁移。与此同时,关于它们“过时”的这种废话与其他所谓的“升级”一样令人厌烦,这些“升级”是我们多年来一直强加给我们的,而不是一直认为它。

那么对于是否使用框架集的问题,所有这些归结为什么呢?答案是,这一切都取决于您希望您的网站做什么,以及它将主要在哪个平台上查看。在某些时候,如果没有一些框架或iFrame集成,使多页面网站工作得很好是不切实际的。但是,如果您只是创建一个可在手机或平板电脑上良好显示的基本个人资料页面,请不要使用框架集。

答案 6 :(得分:2)

他们几乎总是让人生气。你还需要什么?

答案 7 :(得分:1)

框架在某些场合非常有用。如果您要创建仅供阅读的本地网页,不涉及交互,并且网站不会在互联网上公开,则不会删除所有不使用框架的原因。例如,仅以html开发的应用程序的用户手册,框架对于以简单且易于编码的方式保持左侧的目录非常有用。此外,如果您在网站内有适当的导航,那么后退按钮歧义将被完全删除