溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Android微信下JS報錯:無對象

發(fā)布時間:2020-04-10 19:58:03 來源:網(wǎng)絡(luò) 閱讀:378 作者:tywali 欄目:移動開發(fā)
1.1.1 現(xiàn)象

發(fā)布新版本到服務(wù)器上后,點(diǎn)擊一個按鈕總是不執(zhí)行相應(yīng)的操作,將控制臺信息輸出出來后發(fā)現(xiàn)提示信息說沒有找到相應(yīng)的對象。

按鈕的代碼中調(diào)用了一個函數(shù),這個函數(shù)在另外一個JS文件中,是新版本中增加的。因?yàn)槭窃贏ndroid手機(jī)上,沒法聯(lián)機(jī)調(diào)試,于是通過alert逐步定位,發(fā)現(xiàn)新加的函數(shù)確實(shí)沒有。再通過鏈接打開對應(yīng)的JS文件查看,發(fā)現(xiàn)確實(shí)也沒有新增的函數(shù),可是檢查服務(wù)器上的JS文件,其內(nèi)容是正確的。

另外,這個問題只在Android手機(jī)上出現(xiàn),在iPhone下沒有這個問題。

1.1.2 原因

在網(wǎng)上搜索,發(fā)現(xiàn)是Android下使用了緩存的JS文件,因?yàn)樵贖TML的Header中沒有設(shè)置相應(yīng)meta參數(shù),導(dǎo)致Android下沒有更新JS文件。

1.1.3 解決

強(qiáng)制Android刷新JS/CSS文件有兩種方法:

方法一,設(shè)定Meta參數(shù),強(qiáng)制不使用緩存

<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">

<META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">

這種方法適用于開發(fā)階段,或開發(fā)、測試服務(wù)器上,對于生產(chǎn)環(huán)境不太適合,因?yàn)椴皇褂镁彺妫K端用戶的性能會受到影響。

方法二,為需要更新的CSS/JS文件鏈接后面增加版本號參數(shù),這樣Android客戶端會認(rèn)為是新的文件:

<script src="/js/invitation.js?v=20150625"></script>

這種方法適用于生產(chǎn)環(huán)境。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI