Ⅰ ie11 js修正後,如何確保jsp每次都載入最新
IE瀏覽器自動載入修改後的js文件或者jsp文件原理不同。
1、熱部署jsp:
Tomcat jsp熱部署的實現原理大體是這樣的,每個JSP頁面從上次訪問到下次訪問總是有默認幾秒的緩存時間的,也就說並不是嚴格的即修改即生效,tocmat7默認是有4秒的緩存延遲的。這個默認的緩存延遲是在類EmbeddedServletOptions的private intmodificationTestInterval = 4;這個屬性定義的。如果過了4秒緩存時間即失效,這個時候tomcat就會讀取jsp的modified時間戳和work目錄下編譯好的class文件的modified的時間戳作對比。如果相等則class文件沒有過期,則不會重新編譯jsp文件,如果過期了則重新將jsp編譯成java,並進一步編譯成class。同時調用JasperLoader來重新載入這個有jsp編譯好的class文件。
2、js修改後需要在後面加版本號才能自動載入
定義時間戳:
public final static SYSTEM_STARUP_TIME = System.currentTimeMillis();
比如<script type="text/javascript" src="/js/2011/oschina.js?<%=SYSTEM_STARUP_TIME %>"></script>