上傳功能是工作中經(jīng)常會遇到的問題,應(yīng)該作為開發(fā)標(biāo)配的技能每個人都會。
我選用的是Uploadify 3.1.2進(jìn)行上傳,使用方法參考之前的一篇文章, 今天記錄下一個我遇到的很神奇的bug
chrome為何頻繁崩潰(crash)
本地開發(fā)環(huán)境一切正常, 但是上線后Chrome卻頻繁crash,IE、Firefox等瀏覽器都沒有問題,google的建議刪除自己的default目錄,覺得不靠譜沒有嘗試。
一開始搞不懂為什么會出現(xiàn)這種情況,通過Google查資料,發(fā)現(xiàn)是瀏覽器緩存造成的:Chrome瀏覽器為了提高用戶訪問同一頁面的速度,會對頁面數(shù)據(jù)進(jìn)行緩存,當(dāng)(Javascript文件)url請求地址不變時會導(dǎo)致瀏覽器不發(fā)送請求,直接從緩存中讀取之前的數(shù)據(jù),可能uploadify.js文件走了緩存,導(dǎo)致某個變量為null導(dǎo)致chrome崩潰(個人猜測,也有可能是ajax引起的)
解決辦法
根據(jù)stackoverflow上的帖子,給js文件加上隨機(jī)參數(shù),欺騙chrome瀏覽器防止緩存,使每次都發(fā)起請求。
<script src="/Resources/uploadify/jquery.uploadify3.1Fixed.js?ver=<%=(new Random()).Next(0, 99999).ToString() %>" type="text/javascript"></script>
<script type="text/javascript" src=@Url.Content("~/Content/uploadify/jquery.uploadify3.1Fixed.js?ver=")@DateTime.Now.Ticks></script>
<script src="js/jquery.uploadify.min.js?ver=<?php echo rand(0,9999);?>" type="text/javascript"></script>
發(fā)表評論