網頁偶現性崩潰-chrome


簡介:

項目前台框架:Angular2 + Bootstrap(日期等組件) + Echarts + 響應式(包括頁面、字體縮放:rem)

chrome版本:多個版本測試均有此問題。

表現:

  1. 訂單詳情頁面崩潰(喔唷,崩潰啦!顯示此網頁出了點問題) F12中Network提示:Debugging connection was closed.Reason:Render process gone. Reconnect when ready by reopening DevTools.
  2. 查看具體xhr請求,兩種狀態;a.狀態 200 ok,無返回,該頁面其他請求也均無返回;b.請求一直在pending,無返回。
  3. 控制台無報錯。

重現規律:

  1. 初步:未支付的訂單,從訂單列表頁面進入到訂單詳情頁會出現此問題。
  2. 深度:訂單列表頁面狀態為waiting Payment或者In Process狀態的訂單。

定位思路:

  1. 據表現2,后台定位,無問題,打印數據已查出;
  2. filter層定位(是否filter出問題無返回),filter查看打日志,定位,均無報錯,無發現問題;
  3. 據表現“Debugging connection was closed.Reason:Render process gone. Reconnect when ready by reopening DevTools”查詢,可能是文件大小,或者什么導致,與后台確認,返回json不是特別大。

    https://stackoverflow.com/questions/46855911/getting-error-debugging-connection-was-closed-reason-render-process-gone中 render process ended給了思路,是什么導致render process ended?方向應該是前台渲染

  1. 查詢chrome《網頁崩潰原因》,有沒有什么導致內存泄露?檢查代碼
  2. 訂單詳情頁面查看代碼,沒有發現可能導致內存泄露的代碼。試着注釋掉對於后台返回數據的接收,發現后台有返回了!!!注:是否因為數據量過大(ng2的數據綁定)導致頁面渲染出現問題?
  3. 對后台返回數據重新進行處理,拆分,及時釋放不用的變量。注:問題還是存在,可以確定不是數據量多大,ng2框架渲染問題。排除應該為數據原因觸發
  4. postman取出一個訂單,未支付、支付兩種狀態的數據,對比,發現幾個字段不同。對於未支付訂單,后台接收到數據之后逐一更改,發現status字段改動為支付狀態的值,問題會好。注:追蹤前台對這一字段做何處理?發現為調用一公共進度條組件導致。
  5. 斷點跟蹤該公共組件,發現其中一段代碼該狀態下進入死循環。改動此代碼,測試waiting Payment或者In Process狀態下網頁是否ok,確實ok,可確認問題由此死循環導致。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM