我正在嘗試更新applet的緩存。該applet正確緩存,但之後,無論緩存有多陳舊,它都不會更新。如果我手動刪除緩存,則會在下次加載頁面時創建一個新緩存,並且我嘗試緩存的所有對.jar文件的更改都會生效。但是,必須這樣做,這是不可接受的。如何更新applet的緩存?
我已經在我的索引文件使用cache_archive結合cache_version像這樣嘗試:
if (navigator.appVersion.indexOf("Win")!=-1){
var attributes = { id:'manager', code:'HardwareManagerApplet_FileWriter', width:1, height:1} ;
var parameters = {jnlp_href: '/java/HardwareManagerApplet.jnlp', codebase: '/java/hardwaremanager.jar', cache_archive:'hardwaremanager.jar', cache_version:'0.0.0.7'};
check = deployJava.runApplet(attributes, parameters, '1.6');
hardware_enabled = true
console.log("Applet started")
}
這有沒有影響。我試着將cache_archive和cache_version移到屬性和各種排列之間,無濟於事。我曾嘗試啓用cache_option設置爲第一個瀏覽器,然後再次嘗試將其設置爲插件。沒有骰子。我研究過ETags,我不相信這將是最好的解決方案。我也研究過last-Modified,但是A)我不確定如何將它實現到http中,這樣緩存將會更新,並且B)如果我必須走這條路線,它將打開一個全新的罐頭。
有沒有其他合理的選擇?更好的是,我只是不正確地實現cache_archive等人?
而實際上,即使我可以讓它緩存每次加載頁面,我都會很滿意。
感謝您的幫助!
編輯:有關的代碼塊是我做的唯一實現cache_archive等。我是否需要在其他地方放幾行?就Oracle的文檔而言,我並沒有覺得這很清楚。
我想知道這件事......我試着將cache_option:插件放在參數var的cache_archive之前,但我只是在黑暗中拍攝而已。如果我將cache_option:插件放回該行,理論上它應該工作嗎?這不是最後一次,但我可能會做錯或其他錯誤。 – Alex
它絕對沒有解決所有問題,雖然它可能會成爲一個問題。謝謝。 – Alex
它仍然沒有正確緩存? – Keibosh