第五章
2、基于Web的计算模型有哪些?每种模型中计算通常在什么地方完成(客户端还是服务器端)?
答:服务器支持的纯HTML,在服务器端完成
客户端脚本,在客户端完成
服务器端脚本,在服务器端完成
服务器端后台代码,在服务器端完成
3、在ASP.Net Web站点应用中存放哪些类型的文件,它们的功能分别是什么?
答:(1)ASPX文件:用于创建用户与程序交互的GUI页面。
(2)ASCX文件:ASCX文件都通过服务器端脚本或页面后台代码创建HTM页面中的用户控件。
(3)Web。config文件:它包含模式定义、访问控制、参数化应用的行为等配置设置。
(4)Global.asax全局应用类:包含对全局事件的事件处理。
(5)DLL:它包含Windows环境下点的通用库函数,并与.exe文件有相同的格式。
(6)C#文件或者.cs文件用于页面后台的事件处理程序。
(7)Xhtml页面:是ASPX页面的标记页面。
4、在应用目录中,ASP.Net Web站点应用中的各种文件是如何组织的?
答:这些文件组织成一个树形图,全局文件之后必须放在根目录下,并且任何应用只能应用一个全局文件,任何目录下都可以定义任意数目的ASPX文件、ASCX文件和DLL文件。每个目录只定义一个Web.config文件。
5、如何创建用户控件,如何把用户控件包含在Web页面中?
答:用户控件可以通过下列步骤实现:
(1)选择Visual Stidio 菜单命令Web站点——添加新项…
(2)在弹出的窗口中选择Web用户控件。
(3)把新命令为SenderDateTime.ascx,点击添加。用户控件将会出现在应用程序的Solution Explorer中。
(4)双击文件名SenderDateTime.ascx打开文件,出现”source”视图,在页面中添加两个名为1b1DateMsg和1b1Date的标签。
(5)点击“design”标签,转换到设计视图,在图形视图中查看标签。
(6)双击页面的恐怖区域打开C#编码页,添加C#代码。
将用户空间与需要控制的ASPX页面连接。要连接Sender。aspx页,需要打开XHTML源代码视图,通过添加代码中的第一行来注册用户控件。
6、为什么需要用户控件?用户控件的哪些功能不能由服务控制取代?
P214 用户控件使得用户使用非常容易,它的重用性不能被服务控制取代。
7:Global.asax文件的主要功能?
全局应用类,包含负责处理全局事件的处理程序。全局变量可以通过形如Application[index]的应用状态来使用,他提供了对象数组存储全局信息。提供了一种在一个中心位置响应应用程序级或模块级事件的方法。你可以使用这个文件实现应用程序安全性以及其它一些任务。
8:现有的状态管理机制有那些,每种机制的主要特点是什么?
P224页 表5.2
9:ASP.net 中状态变量的最常见形式是什么?它存放什么类型的数据?
对象数组,字符串。
几种常用的变量:
Application 是应用程序级变量,如果用到多个用户之间的通信的时候用;
Session 是用户变量,一个用户访问多个页面时可以保存数据到另一个页面,只要此用户不注销即可;
ViewState 页面变量,相当于页面全局变量,但是一旦退出当前页面,它就会丢失。
表示只要甲不注销,不论跳到哪个页面,string str = Session["UserID"]都保存初始化时的数据,常用于在:Page_Load事件中,验证身份;
只要赋了值,如: Application["x"]; 则甲和已可以共享到此值,可以用于计数器,,记录站点访问量只要一个用户登录,则Application["x"] += 1;加一个数,表示有个新用户刚刚登录;
则表示在本页面中,this.ViewState["y"]值可以作为全局变量使用,只要不退出本页面, 包括刷新页面,它都不会丢失。
答:由于数据存储在客户端,视图状态的好处是能最大限度的减少服务器的负担,数据存储在客户端,视图状态可以使服务器处理更多数量的访问。
答:ASP.NET为了实现状态管理功能,提供了8种方法,可帮助我们在页面之间或者整个用户会话期间保留状态数据。 这些方法分为二类:视图状态、控件状态、隐藏域、Cookie 和查询字符串会以不同方式将数据发送到客户端上。 而应用程序状态、会话状态和配置文件属性(Profile)则会将数据存储到服务端。
视图状态:在ASP.NET的早期,微软为了能帮助广大开发人员提高开发效率,引用入一大批的服务端控件,并为了能将事件编程机制引入ASP.NET中,又发明了视图状态。这种方式虽然可以简化开发工作量,然而却有一些限制和缺点:1)视图状态的数据只能用于回发。2)视图状态的“滥用”容易导致生成的HTML较大,这会引起一个恶性循环:
a. 过大的ViewState在序列化过程中会消耗较多的服务器CPU资源,
b. 过大的ViewState最终生成的HTML输出也会很大,它会浪费服务端网络资源,
c. 过大的ViewState输出导致表单在下次提交时,会占用客户端网络资源。
d. 过大的ViewState数据上传到服务端后,反序列化又会消耗较多的服务器CPU资源。
因此,整个交互过程中,用户一直在等待,用户体验极差。
Cookie:由于HTTP协议是无状态的,对于一个浏览器发出的多次请求,WEB服务器无法区分它们是不是来源于同一个浏览器。所以,需要额外的数据用于维护会话。 Cookie 正是这样的一段随HTTP请求一起被传递的额外数据。 Cookie 是一小段文本信息,它的工作方式就是伴随着用户请求和页面在 Web 服务器和浏览器之间传递。Cookie 包含每次用户访问站点时 Web 应用程序都可以读取的信息。
优点:
1. 可配置到期规则:Cookie可以在客户端长期存在,也可以在浏览器关闭时清除。
2. 不需要任何服务器资源:Cookie 存储在客户端。
3. 简单性:Cookie 是一种基于文本的轻量结构,包含简单的键值对。
4. 数据持久性:与其它的客户端状态数据相比,Cookie可以实现长久保存。
5. 良好的扩展性:Cookie的读写要经过ASP.NET管线,拥有无限的扩展性。
这里我要解释一下Cookie 【良好的扩展性】是个什么概念,比如:
1. 我可以实现把Cookie保存到数据库中而不需要修改现有的项目代码。
2. 把SessionId这样由ASP.NET产生的临时Cookie让它变成持久保存。
缺点:
1. 大小受到限制。
2. 增加请求头长度。
3. 用户可见,保存敏感数据时需要加密。
会话状态:会话状态是ASP.NET实现的一种服务端会话技术,它允许我们方便地在服务端保存与用户有关的会话数据。优点是最简单的服务端会话实现方式。