frameset曾经是构建多栏目网页的标准技术,被广泛使用,但是近年来已进越来越少见到它的踪影。在网上搜索一下,这个词更多的是与邪恶、如何代替、缺点这些主题联系在一起。frameset真的邪恶吗?
各种文章提到的缺点主要有以下几条:
1.(尽管互联网技术飞速发展了这么多年)仍然存在少数浏览器不支持frameset。
除非是想建立像Google这样的网站和有信心和责任感让全世界的网民都访问到你所建的网站,否则这条理由在一级风力下也很难站得住脚。
2.frameset不利于屏幕阅读器(就是为视觉障碍者阅读网页的软件)运行。
不得不说,西方的网页设计者的人权意识值得我们学习。当他们在倡导构建一个无障碍的互联网世界时,在考虑如何为色盲和视觉障碍的用户提供便利的时候,我们的网站还到处是闪闪发光、四处漂移的小图片。
3.frameset不利于将某个frame里的页面加为书签。
这一点是比较接近于大多数用户需求的考虑。所以像MSDN这样的网站都已经弃用frameset,而使用其它技术来实现目录和内容网页的同步。
至于frameset的优点,也就是发明它的初衷,当然是将不同的网页组合到一个屏幕中,使得整个页面中负责不同功能的部分能够被分开设计、组合使用,方便整个系统的统一布局,减少浏览器和服务器之间的流量。
这些优点仍然有效,之所以出现取代frameset的潮流,就是因为出现了同样能够实现这些功能的新的开发技术。frameset可以看作是前端的模块化、组件化,随着Web开发的不断复杂,出现了服务器端的模块化、组件化的技术,比如ASP.NET和JSF。分别属于.NET和Java两大阵营的这两种技术都大大简化和方便了开发中的界面设计,通过自定义控件和模板页等技术,在服务器端实现了网页各个功能部分的组合复用。
基于JSF的XPages技术也可以通过自定义控件来实现以上目的,并且在最早随8.5.3的升级包推出的新Teamroom模版就是使用自定义控件来完成页面的布局。不过我仍然认为在每个页面上都预先叠放几层控件来实现统一布局,不仅增加了设计的复杂程度(特别是当在自定义控件内部进行编辑和设计还很不方便的情况下),而且加大了浏览器和服务器之间的流量。
综合以上的讨论,frameset仍然有存在的理由。唯一比较现实的影响是否采用它因素就是所开发的应用中的各个页面是否有被加为书签的必要。在Teamroom中,视图中的每一个文档都在当前窗口中打开,而如果采用《16. 如何在XPages中实现onload效果及在新窗口中打开视图链接》里的方案,每一个文档仍然有独立的地址,可以加为书签。剩下受影响的就是一级和二级菜单转到的各个frames里的不同页面。如果有需要,也仍然可以借助前端技术提供用户添加书签的功能并且在单个frame中的页面加载时打开整个frameset。
如果决定采用frameset,就会发现传统的Notes帧结构集(frameset)不能将XPage添加为某个帧的内容。而一个XPage在被传向浏览器时也会自动转换成为包含<head>和<body>标签的页面。为了构造一个frameset,只有在传统的Notes page设计元素中添加Pass-through的HTML。就像下面这个样例:
<frameset frameborder="1" rows="60,81%">
<frame frameborder="0" name="top" src=" top.xsp">
<frameset frameborder="1" cols="20%,80%">
<frame frameborder="0" name="left" src=" navigator.xsp">
<frame frameborder="0" name="right" src=" viewAttendance.xsp">
</frameset>
</frameset>
分享到:
相关推荐
frame,iframe.frameset用法和区别
在frameset中frame页面读取另一frame页面$.data数据
frameset元素属性
frameset的应用:编写了几个jsp页面 1.<frameset>:定义一个框架集,它被用来组织多个窗口。每个窗口都是一个独立的html界面。 2.<frameset>有两个参数,cols和rows。cols:列的数目和尺寸。rows:行的...
Frameset_详解;Frameset html;Frameset;Frameset_详解;Frameset html;Frameset;Frameset_详解;Frameset html;Frameset
frameset 框架frameset 框架frameset 框架
\frameset框架页面加滚动条.doc
纵向排列多个窗口: <frameset cols=30%,20%,50%> <frame src="frame/A.html"> <frame src="frame/B.html"> <frame src="frame/C.html"> </frameset>
页面布局frameset frame
frameset.html
frameset遮罩
实现了div 在框架任意位置移动的,。。。。。。。。。。。。。。。。。。。
BIRT framest servelet 汉化包 frameset工具栏及相关ajax页面汉化 已完成viewservlet.jar中messages.properties 中文版
配置了spring 3.0.5 + hibernate 3.6 + struts 2.2.3 一个简单的frameset 权限跳转静态页面
里面包含了frameset,frame以及iframe的一些技术的演练,希望对大家有帮助,如果有什么补充或疑问,可以加QQ374053115进行和我讨论交流,互相进步!里面代码均手写,大致功能都已经实现,如果错误欢迎指出!
js 操作 frameset frame iframe对象
测试IE6/火狐/google浏览器通过 注意:一定要按顺序摆放属性。否则会出现意外情况!
代码可用,html的frameset和target的应用
解决thickbox在frameset框架下只能遮罩子页面的问题。 asp.net项目 直接浏览index.html 最后在父页面和遮罩层里的文本框中输入值后点登录可以得到这几个文本框的值。 将thickbox.js里的tb_init(domChunk)函数替换为...
使用frameset来分割窗口,在顶部的页面中有一个退出选项,点击退出应该跳出这个frameset而不是只是上面的页面变掉...