使用Uploadify进行文件上传,Chrome经常会报“喔唷,崩溃啦”的错误,见下图:
很显然,这是Chrome浏览器缓存功能,所导致的问题。从LOG里也能看到:
正常的情况下,会请求文件(jquery.uploadify.min.js);而崩溃的情况下,则没请求它。
<script language="javascript" type="text/javascript"> //防止客户端缓存文件,造成uploadify.js不更新,而引起的“喔唷,崩溃啦” document.write("<script type=\'text/javascript\' " + "src=\'jquery.uploadify.min.js?" + new Date() + "\'><\/script>"); </script>
其实这个办法并不能完全解决崩溃问题,比如在uplodify页面进入其他页页后,再点击后退返回到这个uploadify页面,同样会出现崩溃问题。
其实如果不用缓存每次去请求服务器其实是个很浪费的事,关键是这样做根本就没有解决这个问题。真正的解决的办法也很简单,就是用setTimeout,让uplodify的初始化和浏览器缓存模块的功能不要在同时进行,操作如下:
$(function(){ setTimeout(function(){ $(\'#file_upload\').uploadify({ \'swf\' : \'tools/uploadify/uploadify.swf\', \'uploader\' : \'upload.php\', \'onUploadSuccess\' : function(file, data, response) { } }); },10); });
这样即可解决启动时/后退时崩溃问题。