當前很多無線頁面都使用前端模板進行數據渲染,那么在糟糕的網速情況下,一進去頁面,看到的不是白屏就是 loading,這成為白屏問題。
此問題發生的原因基本可以歸結為網速跟靜態資源
1、css文件加載需要一些時間,在加載的過程中頁面是空白的。 解決:可以考慮將css代碼前置和內聯。
2、首屏無實際的數據內容,等待異步加載數據再渲染頁面導致白屏。 解決:在首屏直接同步渲染html,后續的滾屏等再采用異步請求數據和渲染html。
3、首屏內聯js的執行會阻塞頁面的渲染。 解決:盡量不在首屏html代碼中放置內聯腳本。(來自翔歌)
解決方案
根本原因是客戶端渲染的無力,因此最簡單的方法是在服務器端,使用模板引擎渲染所有頁面。同時
1減少文件加載體積,如html壓縮,js壓縮
2加快js執行速度 比如常見的無限滾動的頁面,可以使用js先渲染一個屏幕范圍內的東西
3提供一些友好的交互,比如提供一些假的滾動條
4使用本地存儲處理靜態文件。
