最近開發小程序,有一個需求是顯示公眾號文章的需求,由于頁面設計原因不能使用小程序webview來干。
那就需要直接顯示html了,開始用v-html 指令測試,發現有一些問題不能處理大量的內聯樣式,會導致html代碼直出。
網上搜了一堆,無論是 wxparse 還是 qs-wxparse 還是 mpvue-wxparse2 ,雖然能很好的顯示內容,但是都用一個共同致命的缺點----顯示異常卡頓,甚至會導致渲染中斷。除非手機配置很高,否則那種體驗就糟透了。
而 原生的 v-html 也就是 小程序的 rich-text 組件,顯示基本上市秒開,不知道做了什么優化,但是另一個問題是,圖片無法自適應屏幕,會撐開很多,為此設置了相關的css樣式,誰知病不起作用。最終開始搜了一下,有的兄弟已經踩過的坑了,把返回的html的圖片加上內聯樣式,代碼是這樣的 。
this.detail.detailHtml = this.detail.detailHtml.replace(/\<img/gi, '<img style="max-width:100%;height:auto" '),
然后經過測試,速度提升了不知道幾倍,反正是秒開。
最后總結:開發小程序應該關注渲染性能,前后端對返回的內容應該有點潔癖,避免太多無用的標簽影響到渲染速度,第三方庫也要慎重使用。