【发布时间】:2011-05-25 21:58:00
【问题描述】:
我们刚刚从 GWT 迁移到 Wicket 1.4。虽然总的来说非常高兴,但对于 GWT 简化的某些事情,我们仍然有一些学习曲线。其中之一是资源缓存。
如何配置我们应用的资源(尤其是 CSS),以便它们不会随每个页面请求一起下载?
我们在某些页面元素上看到一些闪烁,因为没有立即应用样式,大概是因为每次都在下载样式表。我跟踪了我们的日志,事实上,我几乎在每个页面请求中都看到了对样式表的请求。
我们在 HTML 文件中直接引用 CSS,如下所示:
<link href="/css/ag.screen.css" rel="stylesheet" type="text/css">
<link href="/css/ag.base.css" rel="stylesheet" type="text/css">
我不确定这是否重要,但我们所有的页面都挂载了IndexedParamUrlCodingStrategy,因为我们需要它们既可收藏又具有特定的 URL 结构。
我尝试实现 Stefan Fußenegger 在他的 blog 中建议的内容(即通过标题贡献而不是直接在 HTML 中引用 CSS),但这似乎没有帮助(我尝试使用“curl -一世”)。
在 Wicket 1.4 中是否有为资源设置 Cache-Control 或 Expiration 标头的标准方法?值得为此迁移到 Wicket 1.5 吗? (我犹豫是否这样做,因为它还没有正式发布)。
编辑:我刚刚又尝试了 1.5,但目前缺乏文档确实是一个障碍。 IndexedParamUrlCodingStrategy 和相关的类都没有了,迁移指南几乎没有什么可说的。
编辑 2: 我刚刚注意到一些非常奇怪的事情——当我通过直接输入 URL 或单击 BookmarkablePageLink 到达我的一个页面时,该页面上引用的资源(CSS、图像等)似乎被缓存了(我的日志中没有看到对它们的请求)。但是如果我通过表单提交到达同一页面,所有资源都会再次下载。为什么表单提交会导致页面引用的资源被重新下载?
【问题讨论】:
-
只是好奇是什么让您从 GWT 转到 Wicket?
-
Alex- 一长串的东西。最近的几个问题(我想不通)是让 Facebook/Twitter 按钮工作、集成 Adsense、试图让 Google 索引 Ajax 内容以及与新的 GWT“编辑器”框架作斗争的问题。事实证明,在“传统”框架中编写应用程序要简单得多,然后根据需要编写少量 Javascript 以用于交互内容。我多年来一直是 GWT 的粉丝,所以这对我来说并不是一件容易的事。计划很快写一篇关于它的博客文章。
-
有趣。我使用了几年的 Wicket,但最终偏向了 GWT。 Wicket 很棒,但并没有像我希望的那样得到广泛采用——这意味着让人们熟悉它变得更加困难。无论如何,我想在你写的时候看到你的博客条目。请告诉我。谢谢。
-
Alex,确实很难找到具备 Wicket 技能的人,但是如果您找一个在 J2EE/Servlets 方面相当胜任的人,您可以教他们 Wicket 的基础知识,并让他们在情侣装的日子。我不能对 GWT 说同样的话。
标签: java caching wicket cache-control