我使用javascript和css构建一个带有以下标记的多级下拉菜单:
<ul>
<li>menu item 1</li>
<ul>
<li><a href="#">sub menu menu item 1</a></li>
.................
此标记由自定义JSP标记<mui:menu .../>
生成,该标记从数据库加载菜单数据。
我希望我的jsp页面可以像这样:
我该怎么办?我不太了解缓存机制的细节。
答案 0 :(得分:2)
拥有客户端缓存意味着如果缓存中存储的内容仍然是新鲜的(尚未过期),浏览器将不会转到服务器获取内容。如果您想使用菜单的浏览器缓存,则必须start learning about it。
但恕我直言,我认为你没有以正确的方式接近这一点。您的菜单由JSP自定义标记生成。 JSP在服务器上运行,因此每次请求包含<mui:menu .../>
标记的资源时,标记都会从数据库中提取数据。
我想你可以将这个标签放在一个单独的资源中,你可以用不变的GET查询(这样浏览器可以缓存结果)来自客户端,我想你可以用HTTP 304 Not Modified来回应信号缓存的值仍然有效,但事实是,在您的特定情况下,最好在服务器端而不是客户端处理缓存。
让JSP标记处理缓存,只有在发生变化时才转到数据库。
只是我的两分钱!
答案 1 :(得分:1)
查看OSCache - 它有JSP标记,可以帮助您缓存生成的菜单,并且可以使用它轻松控制内容块。
找到OSCache