發佈新版本到服務器上後,點擊一個按鈕老是不執行相應的操做,將控制檯信息輸出出來後發現提示信息說沒有找到相應的對象。緩存
按鈕的代碼中調用了一個函數,這個函數在另一個JS文件中,是新版本中增長的。由於是在Android手機上,無法聯機調試,因而經過alert逐步定位,發現新加的函數確實沒有。再經過連接打開對應的JS文件查看,發現確實也沒有新增的函數,但是檢查服務器上的JS文件,其內容是正確的。服務器
另外,這個問題只在Android手機上出現,在iPhone下沒有這個問題。ide
在網上搜索,發現是Android下使用了緩存的JS文件,由於在HTML的Header中沒有設置相應meta參數,致使Android下沒有更新JS文件。函數
強制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> |
這種方法適用於生產環境。