历史版本9 :模板计算结果缓存 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 描述编辑

对报表进行访问时,若模板的数据很大,每次访问都会从服务器端重新读取数据,这样就加大了服务器的压力并且导致访问报表的速度变慢,为此可以设置模板缓存,使访问过模板后再次访问该模板时直接从缓存中读取而不需要从服务器端重新读取以此来减小服务器的压力以及提高报表的访问速度。


1.1 读取模板缓存数据的条件

必须是相同模板如该模板有参数则必须输入的参数值是相同的,即模板的展现结果是相同的。

2. 原理编辑

下面我们以一个例子看下原理

客户端 A 访问服务器上的报表设计模板,从数据库中读取,生成想要的模板结果文件,缓存到某处,并传回客户端。

而客户 B 访问服务器此模板时,若返回的结果与客户端 A 访问放回的结果相同,于是不从数据库中的读取,直接去拿A缓存的那些文件,然后传回客户端。

由此可以看出从缓存取模板结果远快于从数据库中读取数据。

3. 设置方法编辑

可以对单个模板进行缓存设置,下面我们看下设置方法。

1)缓存设置

在访问报表的路径后加 &__cache__=true,表示该报表启用缓存,如:

http://localhost:8075/webroot/decision/view/report?viewlet=GettingStarted.cpt&__cache__=true

注:只有在访问模板的 URL 后加 &__cache__=true,才会生成缓存数据,并且也只有在 URL 后加 &__cache__=true 时,才会从缓存中读取数据。

2)缓存有效时间设置

选择菜单模板>模板 Web 属性即可设置,如下图:

如某报表执行需要 5 秒中,设置的报表缓存有效时间为 10 秒,用户A第一次访问该报表时,会将报表结果缓存下来,缓存时间为 15 秒;

从 A 刚开始访问报表的 15 秒内,若用户 B 同样访问了该报表,将直接获取 A 访问时的计算结果。

222