-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