WebView組件不提供開箱即用的Web資源緩存。但是,它確實利用java.net堆棧進行網絡通信。這意味着您可以安裝自己的URL處理程序,該處理程序與緩存進行對話並從緩存中提供資源。例如,把這樣的事情塊你main()
方法JavaFX的推出呼叫前:
URL.setURLStreamHandlerFactory(new URLStreamHandlerFactory() {
public URLStreamHandler createURLStreamHandler(String protocol) {
if ("http".equals(protocol)) {
return new URLStreamHandler() {
protected URLConnection openConnection(URL u) throws IOException {
if (isCached(u)) {
return new CachedStreamConnection(u);
}
return new MyURLConnection(u);
}
};
}
// Don't handle a non-http protocol, so just return null and let
// the system return the default one.
return null;
}
});
當然,魔鬼存在於細節之中。當將緩存中的資源存儲到緩存中時,您應該考慮由HTTP頭返回的緩存策略(如ETags),因此您應該使用應該使用。另一個考慮因素是HTML元標記。 Here是一個很好的緩存資源。
您可能還想考慮一個cookie管理系統來補充這個緩存管理系統。