Uploadify导致Chrome频繁崩溃Crash
上传功能是工作中经常会遇到的问题,应该作为开发标配的技能每个人都会。
我选用的是Uploadify 3.1.2进行上传,使用方法参考之前的一篇文章, 今天记录下一个我遇到的bug
chrome为何频繁崩溃(crash)
crash
本地开发环境一切正常, 但是上线后Chrome却频繁crash,IE、Firefox等浏览器都没有问题,google的建议删除自己的default目录,觉得不靠谱没有尝试。
一开始搞不懂为什么会出现这种情况,通过Google查资料,发现是浏览器缓存造成的:Chrome浏览器为了提高用户访问同一页面的速度,会对页面数据进行缓存,当(Javascript文件)url请求地址不变时会导致浏览器不发送请求,直接从缓存中读取之前的数据,可能uploadify.js文件走了缓存,导致某个变量为null导致chrome崩溃(个人猜测,也有可能是ajax引起的)
解决办法
Asp.Net MVC
上传功能是工作中经常会遇到的问题,应该作为开发标配的技能每个人都会。
我选用的是Uploadify 3.1.2进行上传,使用方法参考之前的一篇文章, 今天记录下一个我遇到的bug
chrome为何频繁崩溃(crash)
crash
本地开发环境一切正常, 但是上线后Chrome却频繁crash,IE、Firefox等浏览器都没有问题,google的建议删除自己的default目录,觉得不靠谱没有尝试。
一开始搞不懂为什么会出现这种情况,通过Google查资料,发现是浏览器缓存造成的:Chrome浏览器为了提高用户访问同一页面的速度,会对页面数据进行缓存,当(Javascript文件)url请求地址不变时会导致浏览器不发送请求,直接从缓存中读取之前的数据,可能uploadify.js文件走了缓存,导致某个变量为null导致chrome崩溃(个人猜测,也有可能是ajax引起的)
解决办法
根据stackoverflow上的帖子,给js文件加上随机参数,欺骗chrome浏览器防止缓存,使每次都发起请求。
Asp.Net Web From
<script src="/Resources/uploadify/jquery.uploadify3.1Fixed.js?ver=<%=(new Random()).Next(0, 99999).ToString() %>" type="text/javascript"></script>
Asp.Net MVC
<script type="text/javascript" src=@Url.Content("~/Content/uploadify/jquery.uploadify3.1Fixed.js?ver=")@DateTime.Now.Ticks></script>
如果经过以上修改后依然崩溃,请使用setTimeout延迟加载插件
setTimeout(function () {
$("#JQupload").uploadify({
queueID: "queueList",
auto: false,
swf: GetFlashUrl(),
uploader: "@Url.Action("UploadFile", "FileOperation")",
height: 22,
width: 60,
buttonText: '浏览',
multi: false,
removeTimeout: 1,
//fileTypeExts: "*.gif; *.jpg;*.jpeg;*.png;*.xls",
onUploadSuccess: UploadSuccessFun,
onUploadError: UploadErrorFun
});
}, 100);