尽量是把不能兼容所有浏览器的js代码放到单独的js文件中,再在html中加个浏览器判断,针对不同浏览器加载不同的js文件,就能达到兼容的目的
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>