-1
我有一个写在Websocket,Polymer,ES6,HTML5中的SPA应用程序。这是由一个Jetty 9后端服务的,它被打包成一个可运行的jar包,并且在JAR中包含了所有的东西。我应该如何处理缓存?
我想要这样,当部署新版本的JAR时,我会向客户端推送一条消息,强制它对所有资源执行无缓存刷新。
我有一个自定义HttpServlet
为我的SPA,所以我可以处理URL“重写”:
private static final Path ROOT = getDevelopmentWebRoot();
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String requestPath = req.getPathInfo();
if (requestPath.equals("/")) {
requestPath = "index.html";
} else {
requestPath = requestPath.substring(1);
}
Path resource = ROOT.resolve(requestPath);
resp.setHeader("Cache-Control", "max-age=31536000");
resp.setContentType(MimeTypes.getDefaultMimeByExtension(resource.toString()));
try {
Files.copy(resource, resp.getOutputStream());
} catch (NoSuchFileException e) {
Files.copy(ROOT.resolve("index.html"), resp.getOutputStream());
}
}
我想我的问题是,我怎么能强制缓存刷新少在JavaScript?
谢谢 - 这就是我现在所做的。这并不理想,因为每次页面加载时仍然有一个请求发送到服务器,但它现在会做:) – Cheetah