服务器跟踪用户状态有好几种方法,其中一种就是,服务器保持session,给客户端一个sessionid,客户端每次发送请求时,会把这个sessionid提交给服务器(这是浏览器干的事),服务器根据这个sessionid找到相应的session,如果你用的jsp,jsp引擎(比如tomcat)会吧这个session作为一个实例变量放到jsp页面里,你可以直接使用。如果是html文件,jsp引擎会直接发送给客户端html文件的内容。
客户端的js访问cookie的方法只能访问存储在客户端的cookie(使用js或session的cookie存储的)。
一般来说,只有服务器端的CGI程序(ASP、PHP、JSP)具有session会话功能,用来保存用户在网站期间(会话)的活动数据信息,而对于数量众多的静态页面(HTML)来说,只能使用客户端的cookies来保存临时活动数据,但对于cookies的操作是个很烦琐的过程,远没有对于session操作那样简便。
为此,本文向读者推荐一种在DHTML中的解决方案“Persistence技术”,使得在静态页面中也能使用session会话功能。
使用保持(Persistence)技术让我们能够在当前会话过程中保存一些数据对象到客户端,它减少了对服务器的访问请求,充分发挥了客户端计算机的数据处理能力,从而也整体提升了页面显示效率。
Microsoft Internet Explorer 5浏览器和以后的版本都支持使用状态保持(Persistence)技术,它有以下几种行为可供调用:
saveFavorite—当页面被添加到收藏夹时保存页面状态和信息
saveHistory—在当前会话中保存页面状态和信息
saveSnapshot—当页面被保存到硬盘时,保存页面状态和信息persists
page state and information directly in the page when users save the Web page to
their hard disk.
userData—在当前会话中用XML格式保存页面状态和信息 网页制作
Persistence技术打破了以前使用使用cookies和session的传统,它继承了以前cookies的一些安全策略,同时也增加了存储和管理数据的能力。我们的每个页面有64KB的用户数据存储容量,对于每个站点总计有640KB的存储上限。
Persistence技术存储的数据格式符合XML标准,所以可以使用DOM技术中的getAttribute和setAttribute方法来存取数据。
下面是一个Persistence技术的典型应用,通过对Persistence存储数据的分析,使得静态页面具有验证功能。
实际判断过程是这样的:
有三个对象:游客V、导航页面A、内容页面C
游客V只能通过导航页面A的链接才能看到内容页面C;
如果游客V是通过其它途径来访问内容页面C(比如通过其它网站的超链接、直接在IE地址栏中输入网址访问等),内容页面C将自动提示版权信息,显示空白页。
具体实现步骤:
一、在“导航页面”中加入一个STYLE用来定义persistent类,同时加入存储函数fnSave用来授权。
二、在“导航页面”的