Android微信下JS報錯:無對象

1.1.1 現象

發佈新版本到服務器上後,點擊一個按鈕老是不執行相應的操做,將控制檯信息輸出出來後發現提示信息說沒有找到相應的對象。緩存

按鈕的代碼中調用了一個函數,這個函數在另一個JS文件中,是新版本中增長的。由於是在Android手機上,無法聯機調試,因而經過alert逐步定位,發現新加的函數確實沒有。再經過連接打開對應的JS文件查看,發現確實也沒有新增的函數,但是檢查服務器上的JS文件,其內容是正確的。服務器

另外,這個問題只在Android手機上出現,在iPhone下沒有這個問題。ide

1.1.2 緣由

在網上搜索,發現是Android下使用了緩存的JS文件,由於在HTML的Header中沒有設置相應meta參數,致使Android下沒有更新JS文件。函數

1.1.3 解決

強制Android刷新JS/CSS文件有兩種方法:性能

方法一,設定Meta參數,強制不使用緩存 測試

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

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

這種方法適用於開發階段,或開發、測試服務器上,對於生產環境不太適合,由於不使用緩存,終端用戶的性能會受到影響。對象

方法二,爲須要更新的CSS/JS文件連接後面增長版本號參數,這樣Android客戶端會認爲是新的文件: ip

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

這種方法適用於生產環境。

相關文章
相關標籤/搜索