使用Uploadify进行文件上传,Chrome经常会报“喔唷,崩溃啦”的错误,见下图:
很显然,这是Chrome浏览器缓存功能,所导致的问题。从LOG里也能看到:
正常的情况下,会请求文件(jquery.uploadify.min.js);而崩溃的情况下,则没请求它。
网上搜索到了如下的两种解决方法:
1、添加代码,禁止缓存
JAVA代码:
[java] view plaincopy在CODE上查看代码片派生到我的代码片
response.setHeader("Pragma","no-cache"); //HTTP 1.0 response.setHeader("Cache-Control","no-cache"); //HTTP 1.1 response.setDateHeader ("Expires", 0); //prevents caching at the proxy server
JSP代码:
[javascript] view plaincopy在CODE上查看代码片派生到我的代码片
<% response.setHeader("Pragrma","no-cache"); response.setHeader("Cache-Control","no-store"); response.setDateHeader("Expires",0);%>
HTTP代码:
[html] view plaincopy在CODE上查看代码片派生到我的代码片
2、加时间戳或随机数,禁止缓存JSP代码:
[javascript] view plaincopy在CODE上查看代码片派生到我的代码片
不清楚为什么(难道是用了Struts,SiteMesh,Velocity等?),上述的方法都没效果,只有下面这个方法,才有效:
[javascript] view plaincopy在CODE上查看代码片派生到我的代码片
注意:因为Math.random() 只能在Javascript 下起作用,故只能通过Javascript的调用才可以;
若上面改为(,则无法实现不缓存。