記得剛剛入職新公司的時候,公司在做app里面的h5頁面。跟之前公司的流程不太一樣。之前都是寫完靜態頁面后通過ajax加載接口數據,這公司省事了,寫完靜態頁面直接扔給服務端,他們來填數據,確實給前端省事了。但新問題也不少。
前段時間寫了個頁面,服務端填完數據上線了。但發現數據多的情況下,加載時間比較長,頁面一片空白。體驗效果特別差。就想着可以加個進度條。
可問題來了,之前可以用ajax判斷數據是否加載完畢。但現在怎么判斷呢。糾結了好長時間。翻閱各種資料,
發現有個pace.js可以監聽服務端的數據的進度條,下載下來試了試。確實可以,引入js跟css,代碼都不用寫,確實挺不錯。
具體請參考pace.js http://github.hubspot.com/pace/docs/welcome/
就在前兩天,又有進度條的需求了,這次用的ajax,那更簡單了,加載進來就可以了,但發現還是會有問題,ajax請求會發出兩個,一個請求頭,一個請求體,當請求頭發送完畢后進度條就消失了。但內容還沒有出來,看文檔里面可以監聽全部ajax請求完畢,
window.paceOptions = {
ajax: true,
eventLag: false,
elements: false
}
在window.paceOption{ } 里設置ajax為true之后,當網速過慢的情況下,會發現使用pace.js進度條並沒有等數據全部請求完成之后消失,並沒有達到理想的效果。查了好多資料發現pace.js在一些版本里默認ajax只跟蹤GET方法的問題,需要在pace.js引入前添加代碼(這句是重點):
window.paceOptions = {
ajax: {
trackMethods: ['GET', 'POST']
}
}
或者把post請求改成get.
神奇的發現,真的可以了,只有在數據全部加載完畢以后,進度條才會消失。這算pacejs的坑嗎,也不確定,
簡單的記錄一下,有朋友遇到同樣的問題,可以做下參考。