文档介绍:客户端缓存策略摘要:将相关数据缓存到客户端的文本、Excel、Access文件与客户端内存中,通过执行脚本程序启动组件程序或其他程序,以实现客户端缓存数据与Web页面的交互,并将服务器端的相关处理程序迁移到客户端,在客户端建立“写缓存”程序运行缓慢的问题。这些策略可用于JSP与C/S模式到B/S模式迁移开发中。关键词:缓存;性能;页面;缓存策略 0 引言是开发软件的集成环境,它将Web程序与Windows程序的开发合二为一,开发效率高,Window程序的开发习惯几乎都可以沿用,所以在业界的应用越来越普及。开发出来的Web()程序,执行时占用的内存空间和CPU等资源较多,运行速度令人难以接受。为解决这个问题,尤其第2版,提供了很多基于“缓存”策略的改进措施,归纳起来有: (1)页面输出缓存。将整个页面缓存到服务器的内存中,当有新请求时直接将其发送给客户端,服务器不必再处理。(2)页面部分缓存。将页面的静态部分或相对不变部分缓存到服务器的内存中。(3)数据缓存。将可能的待读数据缓存到服务器端的内存或其他地方。这是数据库管理系统(如SQLServer)的功能。(4)利用存贮过程,提高数据库管理系统的处理速度。(5)。这些方法均在服务器端实施,能在一定程度上提高Web程序的运行效率。我们在开发某B/S模式的系统时,尽管用尽了以上缓存方法,服务器仍然频频瘫痪,这迫使我们去研究其他缓存方法,以提高系统的运行效率。 1 基本思想将缓存位置从服务器端转移到客户端,在客户端利用各种方式建立缓存,减轻服务器的负担,提高Web程序的运行速度。“待读”的数据可缓存于客户机的硬盘、内存等处。当缓存到硬盘时,可保存在文本文件、Excel文件、数据库文件(如DBF、MDB、DB)。当缓存到内存时,可保存到网页的DOM(DocumentObjectModel)对象,如HTML型的列表框、下拉列表框、隐藏型文本框中,也可保存到特殊对象,如TOM(TableObjectModel)对象,即HTML型的表格控件中。也可将写回到服务器的数据缓存在客户端,仅当提交数据时,才将写缓存中的数据发送到服务器。 2实施策略为了在客户端实现缓存,采用脚本语言编写程序,完成对HTML型控件、文本文件、Excel工作簿、数据库文件(Access的MDB文件、FoxPro的DBF文件等)等的操作。下面针对缓存位置的不同,分别介绍各种策略。 :将数据缓存到客户端文本文件本策略的基本思想是:用户先从服务器下载该用户相关的数据。并保存到客户端的某个文本文件,然后断开与服务器的连接。这样,用户的多数操作可在客户端执行,只有当用户提交数据时,才与库服务器交互。其具体实施过程如图1所示。图1 将数据缓存到客户端文本文件 ,可采用“预处理”策略,根据用户权限,先利用Windows程序从数据库提取数据,将其转换为文本文件,再压缩打包并保存到ftp文件夹。 (1)获取压缩包名:在用户登录网页中调用报名网页,在报名网页的Page_Load事件中,根据登录网页中用户输入的相关信息,计算产生待下载压缩包的URL值,()语句,将其写入到某表单的HTML控件中。核心语句为(C#语言): strings0="": strings1="<inputtype=V'hide\"id=\"hUrI\"value=\"{0} \“>”; strings11=(ss1,()); (s0+s11); (2):为了采用非交互方式执行下载命令ftp,需建立下载命令清单文件,因此需利用脚本语言,为网页onLoad事件编写处理程序,使之在客户端载入网页时,建立此清单文件。核心语句(JavaScript语言)为: varstrMyFileName="D:\\": varfileSysObj=newActiveXObject(""); varmyFile=(strMyFileName,true); varrarFn=; varffpCmd="get"+rarFn+"D:\\"+rarFn; (ftpCmd); (“quit”);(); 注意:需要将指定网站添加到“受信任的站点”。将命令