框架能够在同一个浏览器窗口中显示多个 HTML 文档,可用于那些在页面上保持可见的导航控件(如带链接的菜单),还能让你能够独立的滚动内容框架,同时保持导航控件的位置固定不变。
在现代网站设计里,框架被认为已经过时了。它有一系列的缺点:
- 缺乏对各种屏幕尺寸和设备(如手机)的良好支持。
- 浏览的 URL 反映了框架页面,但不能提供每个框架加载的文件的任何信息。书签和浏览器历史可能不能捕获当前页面的状态。
- 框架在 XHTML1.1 中被废弃了!
在 ASP.NET 的开发里,使用母版页创建多栏页面要比使用框架的情况普遍的多。不过框架仍然有一些特殊的用途,比如把不同网站的现有文档放到同一个窗口里。框架和 JavaScript 相似,完全独立于 ASP.NET。它们只是 HTML 标准的一部分。
框架导航
框架不容易和 ASP.NET 页面整合。创建独立的框架很简单,只要创建一个引用要显示的 ASP.NET 页面并定义好位置的 HTML 框架页面即可。
但开发人员通常期望一个框架的动作会在其他框架中显示结果,但这种交互并不简单。问题在于每个框架加载不同页面,在 Web 服务器的角度看来,它们是完全独立的。它们之间的交互只能通过浏览器的客户端脚本。
考虑下面的 HTML 页面,它定义了一个有两个框架的框架集:
>
<head>
<title>Frame Test</title>
</head>
<frameset framespacing="1" cols="200,*">
<frame name="menu" src="Frame1.aspx" scrolling="no" />
<frame name="content" src="" scrolling="auto" />
<noframes>
<body>
<p>This page uses frames, but your browser doesn't support them.</p>
</body>
</noframes>
</frameset>
</html>