微信服務號白屏問題

目前偶爾有用戶反饋微信服務號白屏問題。主要分兩種:

1:服務號上傳圖片OCR識別頁面突然白屏重新loading問題。

2:用戶點擊服務號菜單欄,進入相應頁面loading白屏問題。

我們主要是Vue框架。面對第一種問題,經過分析發現,我們上傳圖片用的lrz三方庫壓縮成文件流上傳。當如果涉及到大量圖片壓縮上傳,用戶頻繁操作就會觸發瀏覽器內存過大崩潰,重新loading的機制。微信服務號web瀏覽器會崩潰,用safari瀏覽器測試也會出現。目前6plus和一個用戶手機反饋過。量少所以沒有繼續升入優化。估計優化方向,lrz壓縮內存優化

第二種問題,也有一定發生頻率。常見於項目發包後。經過設備信息收集,用戶日誌分析。最終確認問題出在用戶點擊服務號菜單獲取授權成功,進入web包路由時出問題。判斷是瀏覽器緩存導致。針對這個問題,前端優化方案,在webpack打包文件webpack.prod.conf.js中修改相關配置。

const Version = new Date().getTime();

1.在 出口文件 output 配置加入時間戳,減少打包static文件中js和css文件緩存。代碼如下:

output: {

path: config.build.assetsRoot,

filename: utils.assetsPath('js/[name].[chunkhash].' + Version + '.js'),

chunkFilename: utils.assetsPath('js/[id].[chunkhash].' + Version + '.js')

},

2.在html加載腳本添加時間戳防止緩存。代碼如下:

new HtmlWebpackPlugin({

filename: config.build.index,

template: 'index.html',

hash:Version,// 加載腳本時候去緩存

然後服務端也需要修改nginx配置,讓index.html不緩存。

修改如下

location = /index.html {
    add_header Cache-Control "no-cache, no-store";
}

但是經過實驗,發現後端和運維切換後還是會出現白屏,緩存問題並沒有得到根治,具體服務端index.html去緩存如何配置,還需要繼續探索,後面如果解決了再更新


 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章