Frameset框架优缺点--来自新浪微博

原文地址:http://blog.sina.com.cn/s/blog_4a4b1b010100p6ro.html
HTML框架简述
 
一个浏览器窗体可以通过几个页面的组合来显示。我们可以使用框架来完成(frames)这项工作。(框架可以把HTML文档分为多个页面)
 
框架页使用了表格的方式组合,可以分为数行与数列。
 
框架的优点
 
  • 重载页面时不需要重载整个页面,只需要重载页面中的一个框架页(减少了数据的传输,加快了网页下载速度)
  • 技术易于掌握,使用方便,使用者众多,可主要应用于不需搜索引擎来搜索的页面
  • 方便制作导航栏
 
框架的缺点(iframe的缺点与frame类似)
 
  • 会产生很多页面,不容易管理
  • 不容易打印(目前只能实现分框架页面的打印,不能实现对frameset的打印)
  • 浏览器的后退按钮无效(只能针对实现当前光标所在页面的前进与后退,无法实现frameset整个页面的前进与后退)
  • 代码复杂,无法被一些搜索引擎索引到(框架结构(帧结构)的不能为每个网页都设置一个标题(TITLE),更为糟糕的是,有些搜索引擎对框架结构的页面不能正确处理,会影响到搜索结果的排列名次)
  • 多数小型的移动设备(PDA 手机)无法完全显示框架
  • 多框架的页面会增加服务器的http请求
  • 由于上面诸多缺点,因此不符合标准网页设计的理念,已经被标准网页设计抛弃,目前的html5已不再支持此标签

iframe的缺点

1、在网页中使用框架结构最大的弊病是搜索引擎的“蜘蛛”程序无法解读这种页面。当“蜘蛛”程序遇到由数个框架组成的网页时,它们只看到框架而无法找到链接,因此它们会以为该网站是个死站点,并且很快转身离去。对一个网站来说这无异于一场灾难。

如果你想销售产品,你需要客户;如想得到客户,你首先要让人们访问你的网站,而要做到这一点,你就非求助于搜索引擎不可。你花费了大量的时间、精力和金钱开设了一家网上商店,却又故意不让搜索引擎检索你,这就好象开家零售商店,却将窗户全部漆成黑色,而且还不挂任何招牌一样。

2、框架结构有时会让人感到迷惑,特别是在几个框架中都出现上下、左右滚动条的时候。这些滚动条除了会挤占已经非常有限的页面空间外,还会分散访问者的注意力。访问者遇到这种网站往往会立刻转身离开。他们会想,既然你的主页如此混乱,那么网站的其他部分也许更不值得浏览。

3、链接导航问题。使用框架结构时,你必须保证正确设置所有的导航链接,如不然,会给访问者带来很大的麻烦。比如被链接的页面出现在导航框架内,这种情况下访问者便被陷住了,因为此时他没有其他地方可去。

 
HTML框架结构与语法
 
框架的DTD
 
使用框架页时要使用它特有的DTD(HTML文档结构)
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
HTML框架使用frameset标签把浏览器的窗体分为多个行与列的框架页,每个页面又使用了frame标签定义,同时应该使用noframes定义浏览器不支持框架时显示的内容。本节将介绍frame标签,下节介绍frameset标签(引用网址:http://www.dreamdu.com/xhtml/tag_frame/)。
 
框架结构
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"> <html> <head> <title>梦之都框架页示例</title> </head> <frameset rows="120, *, 80"> <frame src="http://www.dreamdu.com/xhtml/" /> <frame src="http://www.dreamdu.com/css/" /> <frame src="http://www.dreamdu.com/javascript/" /> <noframes> <body> 梦之都使用了框架技术,但是您的浏览器不支持框架, 请升级您的浏览器以便正常访问梦之都。 </body> </noframes> </frameset> </html>
通过使用frameset的rows属性(120, *, 80)定义了一个三行的框架,第一行120像素,第三行80像素,第二行是整个页面减去第一行与第三行剩下的像素。frameset里面包含三个frame,每个frame都使用了src属性定义了框架页所包含的页面,最后的noframes定义了浏览器不支持框架时所显示的内容。
 
frame标签
 
frame 标签 -- 定义frameset标签中每个框架页的内容
frame标签是单独出现的,<frame />
引用网址:http://www.dreamdu.com/xhtml/tag_frame/
属性:
Common -- 一般属性
frameborder -- 定义了内容页的边框,取值为(1|0),缺省值为1
1 -- 在每个页面之间都显示边框
0 -- 不显示边框
longdesc -- 定义框架页的说明
marginwidth -- 定义了框架中HTML文件显示的左右边界的宽度,取值为px,缺省值由浏览器决定
marginheight -- 定义了框架中HTML文件显示的上下边界的矿度,取值为px,缺省值由浏览器决定
name -- 在一个框架页链接到另一框架页时使用(另一个框架页可以使用target定义链接页)
noresize -- 定义了浏览者是否可以通过拖拽改变框架页尺寸,取值为(noresize)
scrolling -- 定义是否有滚动条,取值为(yes|no|auto),缺省值为auto
yes -- 显示滚动条
no -- 不显示滚动条
auto -- 当需要时再显示滚动条
src -- 定义了内容页URL 
 
补充:
一: <Frameset>为框架标记,说明该网页文档为框架组成,并设定文档中组成框架集的框架的布局,用来划分框架,每一个框架由<Frame></Frame>标记。

<Frame>用以设置组成框架集中各个框架的属性。<Frame></Frame>必须在<Frameset></Frameset>之内使用。

注意:<Frame></Frame>标记的框架顺序为从左至右或从上到下。

二: Iframe是Inline Frame的缩写,称为内联框架,它和frame如同兄弟。frame是帧标记,Iframe叫浮动帧标记,它不同于Frame标记最大的特征即这个标记所引用的HTML文件不是与另外的HTML文件相互独立显示,而是可以直接嵌入在一个HTML文件中,与这个HTML文件内容相互融合,成为一个整体;因为它可以多次在一个页面内显示同一内容,而不必重复写内容,所以人们形象称这种效果为“画中画”。

上一篇:原创|我是如何从零学习开发一款跨平台桌面软件的(Markdown编辑器)


下一篇:Foundation ----->NSNumber