私はWebsocket、Polymer、ES6、HTML5で書かれたSPAアプリケーションを持っています。これは、JAR内のすべてのものを実行可能なjarファイルとしてパッケージ化されたJetty 9バックエンドによって提供されます。キャッシュをどのように処理すればよいですか?
新しいバージョンのJARをデプロイするときに、すべてのリソースをキャッシュレスでリフレッシュするようにメッセージをクライアントにプッシュするようにしたいと思います。
私は「書き換え」私はURLを処理できるように、私のSPAを提供するためのカスタムHttpServlet
を持っている:
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