如果有一個頁面也別卡頓,設(shè)想一下可能的原因?
面試官想了解:
是否對該場景進行過測試
是否有問題的排查思路
技術(shù)點
涉及的技術(shù)點:
軟件測試問題分析思路
性能測試
回答
頁面特別卡頓的原因,這個題目對應(yīng)的考察點比較廣泛,有前端性能問題,也有對應(yīng)后端接口性能問題。
頁面請求數(shù)量是否太多
首先,考慮的就是是否當(dāng)前頁面對應(yīng)的請求數(shù)太多,導(dǎo)致請求返回的數(shù)據(jù)比較慢。
這時,需要從前后端分別進行分析,看下是當(dāng)前頁面對應(yīng)的后端接口響應(yīng)的時間慢,還是前端重復(fù)請求太多導(dǎo)致。
如果是后端某些接口響應(yīng)慢導(dǎo)致,則需要找到對應(yīng)接口,反饋給后端研發(fā)進行優(yōu)化。
如果是前端有大量的重復(fù)請求,則需要反饋給前端研發(fā),在前端頁面進行適當(dāng)?shù)臄?shù)據(jù)緩存,進而減少重復(fù)的請求。
頁面元素太復(fù)雜
對應(yīng)頁面資源類標(biāo)簽太多,比如:頁面的DOM樹對應(yīng)的節(jié)點是否太多太長,頁面是否有太多的圖像及視頻資源的加載,對應(yīng)頁面設(shè)計的太復(fù)雜導(dǎo)致頁面加載慢,
頁面數(shù)據(jù)量過大
當(dāng)前頁面需要展示的數(shù)據(jù)量過大,是否需要從業(yè)務(wù)層面需要對該頁面進行分頁處理或業(yè)務(wù)拆解。
客觀因素
有可能當(dāng)前網(wǎng)絡(luò)環(huán)境問題導(dǎo)致對應(yīng)頁面加載過慢。
內(nèi)存泄漏
首先,給大家說一下什么是內(nèi)存泄漏。
對應(yīng)的內(nèi)存泄露就是由于代碼原因,某些已經(jīng)不再使用的變量或代碼還在占用內(nèi)存,未釋放掉相關(guān)內(nèi)存,其實就是一種內(nèi)存的浪費。
有可能前端有大量的全局變量的數(shù)據(jù)或某些代碼被循環(huán)引用導(dǎo)致。
主線程阻塞
開啟一個字線程對主線程進行監(jiān)控,當(dāng)主線程的運行狀態(tài)超過一定的時間閾值后,則認為主線程卡頓。
總結(jié)
以上為常見的頁面卡頓的原因,如果是一個具體的場景,則還需要根據(jù)具體場景來進行判斷。