FrameSet, Frame, IFrame, MasterPage的区别

闲来无事,系统要升级,引进新东西,这个就是MasterPage。姐以前只是用过,但是真未深究其优点和不足之处。

首先说FrameSet,它是一个页面的框架,将这个页面分成几个框。如下面的例子:

<html>
<noframes> 
<body> 
很抱歉,馈下使用的浏览器不支援框架功能,请转用新的浏览器。 
</body> 
</noframes>
     <frameset border="1"  borderColor="#47478d" rows="90,*" style="margin:0px"  > 
            <frame src="frmHeader.aspx"name="header" scrolling="auto" id="header"  style="margin:0px; z-index:2;" > </frame>
            <frameset border="1" frameSpacing="1" borderColor="#47478d"  cols="170,*">
                <frame src="frmLeft.aspx" name="left" scrolling="no" id="left"> </frame>
                <frame src="Contract/frmContractReportList.aspx" name="main" scrolling="no" id="main"> </frame>
            </frameset>
     </frameset>
</html>


frameset下面套着frame。上面的例子是一个上,左,右的结构。它不能和Body一起用,也就是说它不能放在Body中,有的浏览器无法识别FrameSet,就只能加上<noframes>那一段了。

本来我用了这个,在上面那个Frame中放了一个Menu,带下拉式的Menu。后来发现由于上面的框设置了固定高度,当鼠标经过菜单时,那个下拉式的菜单竟然放不下下拉出来的项,只能缩在那,高度不够啊,它只在自己的框中显示,不会把下拉的菜单占用其他框来显示,哭死啊。彻底抛弃了。

而且查了资料,Frameset越来越受冷落了,估计页面传递信息不方便。受冷板凳了。。。。


其他说Frame,它是和FrameSet一起用的,如上例。


再来说IFrame,这个东西目前好像还是比较受欢迎的,很多的后台系统的主页中都会用IFrame,菜单一点击,Iframe的页面就变更。这样主页的其他内容无需再次加载,比如菜单,比如登陆人的信息。估计都是大爱啊。

但是它还是有缺点的。好像IFrame这个东西在不同浏览器展现效果不同,估计得多花时间调样式吧。搜索引擎是无法搜索到IFrame页面中的信息的。想要推广自己的网站估计就大亏了,因为你将爬虫拒之门外了。


最后说MasterPage,它是母版页,能把公共的信息写到母版中,其他页面只需继承它就好了,这样每个页面都无需写一堆相同的代码了。特别是公共的JS引用,Css引用,ScriptManager,UpdateProgress,其他类似的东西(只是每个页面赋值不同),这些都扔进MasterPage。

如果是相同的东西,但是无需每个页面都加载一次,这些就不要扔进MasterPage,这是因为其他页面继承了MasterPage,其他页面刷新时,MasterPage也会刷新,就会从数据库再次读取数据,再次绑定。当然用了缓存的话,可以不用每次将MasterPage中信息再次从数据库读,那就从缓存读,但是至少也得再次绑定啦。这还真是比较恶心的 问题。

姐就亲自试了一遍,将主页中上方菜单、左边的快捷链接都放了MasterPage,其他页面就都继承MasterPage,彻底抛弃IFrame。却发现每次页面加载,MasterPage都加载,可是那是菜单,固定不变的,哪需要每次读数据库,再绑定菜单啊。引用缓存,只能稍微好点。但是效果还是不如IFrame的好。

所以姐的这种情况,还是IFrame比较好。

既然上头说要用MasterPage,姐还是得让它用上,So,姐就还是用Iframe,只是Iframe中的页面总是还会有些公共的东西,比如JS,CSS,Asp.net Ajax的框架性控件都扔进去了,这样就不用每个页面都引用JS,加入ScriptManager,UpdateProgress控件。


刀还是得用在刀刃上 ,每一种东西必然有它的独到之处,若放弃它的独到性,去用其他的替代品,必然要付出一定的代价。那就是多花时间,多写代码。

通过试了这三种方式,姐对它们真的有深刻的体会了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值