欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 前端技术 > javascript >内容正文

javascript

OSCache-JSP页面缓存(2)

发布时间:2024/4/15 javascript 28 豆豆
生活随笔 收集整理的这篇文章主要介绍了 OSCache-JSP页面缓存(2) 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

如果在jsp中使用如下标签

<cache:cache key="foobar" scope="session"> some jsp content </cache:cache>

那么这中间的一段jsp代码将会以key="foobar"缓存在session中,任何其他页面中使用这个key的cache标签都能共享这段存在缓存中的执行结果。

考虑一个需求,一个页面是有许多个不同的jsp文件拼出来的,可能在页首有随机的广告,登录用户的信息,系统的即时信息,固定的目录信息等等;这其中可以考虑将固定的目录信息放入缓存中,而其他动态信息则即时刷新;再进一步考虑有时候页面之间的信息是关联的,只有当其中一条信息的内容变化了才需要去刷新。

对于这种需求就可以考虑在<cache:cache/>标签中配置group属性,将不同的具有关联关系的cache内容分组,这样oscache会自动的帮你检查该组缓存内容的变化情况,如果有任何一子成员组的内容变化了则会执行刷新,这样就可以在页面实现数据的动态同步。

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ page import="java.text.SimpleDateFormat"%> <%@ taglib uri="http://www.opensymphony.com/oscache" prefix="cache"%><head><title>Test Page</title><style type="text/css"> body {font-family: Arial, Verdana, Geneva, Helvetica, sans-serif } </style> </head> <body><a href="<%=request.getContextPath()%>/">Back to index</a><p><hr>Flushing 'group2'<hr><cache:flush group='group2' scope='application' /><hr><!-- 这里有两个cache分组group1和group2,将group2设置为每次都执行刷新,所以test1为key的cache每次刷新页面内容都是重新执行过的 --><cache:cache key='test1' groups='group1,group2' duration='5s'><b>Cache Time1</b>: <%=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())%><br> This is some cache content test1 that is in 'group1' and 'group2'. Normally it would refresh if it was more than 5 seconds old, however the <cache:flush group='group2' scope='application' /> tag causes this entry to be flushed on every page refresh.<br></cache:cache><hr><!-- test2只有当间隔时间超过5秒才会更新内容 --><cache:cache key='test2' groups='group1' duration='5s'><b>Cache Time2</b>: <%=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())%><br> This is some cache content test2 that is in 'group1' (refreshes if more than 5 seconds old)<br></cache:cache><hr>
<!--每隔20秒刷新一次-><cache:cache key='test3' duration='20s'><b>Cache Time3</b>: <%=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())%><br> This is some cache content test3 that is in 'group1' and 'group2'. The groups are added using the tag.<br></cache:cache><hr>

<!--实时刷新--><cache:cache key='test4' duration='20s'><b>Cache Time4</b>: <%=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())%><br> This is some cache content test4 that is in 'group1' and 'group2'. The groups are added using the tag.<br><cache:addgroups groups='group1,group2' /></cache:cache><hr> </body> </html>

<cache:addgroup group='{you_group}'/>可以将所在的you_group加入当前所在位置的group中

总结

以上是生活随笔为你收集整理的OSCache-JSP页面缓存(2)的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。