本發明涉及游戲數據處理,特別涉及一種基于動態虛擬列表離屏運算的日志展示方法及系統。
背景技術:
1、日志,在軟件開發領域的所有階段和場景都有著不可輕視的作用,隨著應用系統的不斷迭代和開發團隊的不斷擴充,在日常開發調試和系統問題處理上,日志都起到了非常關鍵的作用,以至于各大軟件開發團隊都對生產環境的日志獲取有著獨特的心得。
2、因團隊處理的游戲業務在構建階段往往有著巨量日志,而在生產流程發布過程一次展示數以萬計的日志往往會帶來極大的性能問題,所以如何批量展示大量日志的同時又保證系統性能成了各大團隊在處理大量日志時的挑戰。
3、目前通常采用靜態定高虛擬列表的方式來處理大量日志展示。靜態定高虛擬列表是出現最早也是應用最多的虛擬列表,特點是虛擬列表的各子項高度相同或相近,而日志應用場景的特點是各子項的高度差別極大,故靜態定高虛擬列表不能很好的覆蓋日志場景的虛擬列表,會導致行內容空白過多或行內展示空間不夠導致樣式錯亂。
技術實現思路
1、本發明的目的是為了解決同時展示大量日志時的卡頓問題,因web引擎的性能限制,當日志超過1萬行就會導致明顯的卡頓甚至在系統內存占用較高的時候導致頁面崩潰,而游戲構建場景往往又需要系統具備在線處理大日志的能力,為此,提供了一種基于動態虛擬列表離屏運算的日志展示方法及系統。
2、為了實現上述目的,本發明所采用的技術方案如下:
3、一種基于動態虛擬列表離屏運算的日志展示方法,包括以下步驟:
4、步驟s1:獲取日志展示區域寬高信息;
5、步驟s2:加載日志數據;
6、步驟s3:根據展示區域寬高信息進行日志數據分包;
7、步驟s4:根據基礎行設置虛擬列表區塊高度,同時,將日志分包數據外發進行離屏解析并計算,得到行高數據;
8、步驟s5:將步驟s4的行高數據回傳并渲染到虛擬列表區塊上;
9、步驟s6:監聽用戶的滾動操作,當虛擬列表區塊滾動到用戶可視區域時,則進行實際行高渲染,并在實際渲染后將實際行高數據更新到展示區塊上。
10、以下為本發明中方法進一步限定的技術方案,在步驟s4中,將渲染層的日志分包數據下發傳輸給計算層中的webwork后臺進程進行解析、計算。
11、以下為本發明中方法進一步限定的技術方案,將日志分包數據解析后根據字符類型進行區分,再分別計算字符串長度,并根據展示區域寬高信息計算換行高度,將每一條日志的換行高度進行合并,從而形成行高數據。
12、一種基于動態虛擬列表離屏運算的日志展示系統,包括:渲染層和計算層;
13、所述渲染層包括展示區域信息獲取模塊、日志數據加載模塊、分塊拆分模塊、虛擬列表區塊設置模塊、渲染層數據傳輸模塊、用戶操作監聽模塊、渲染模塊和數據更新模塊;
14、其中,展示區域信息獲取模塊,用于渲染層賦值獲取日志展示區域寬高信息;
15、日志數據加載模塊,用于渲染層加載日志數據;
16、分塊拆分模塊,用于將需要展示的日志數據根據展示區域寬高信息的2倍高進行分塊拆分并進行打包;
17、虛擬列表區塊設置模塊,用于設置虛擬列表區塊,并根據基礎行設置虛擬列表區塊高度;
18、渲染層數據傳輸模塊,用于將渲染層的日志分包數據發送給計算層,以及接收計算層發送過來的行高數據;
19、用戶操作監聽模塊,用于監聽用戶的滾動操作,從而判斷虛擬列表區塊是否滾動到用戶可視區域內;
20、渲染模塊,用于將計算層計算得到的行高數據渲染到虛擬列表區塊,以及在監聽到用戶滾動操作使得虛擬列表區塊滾動到用戶可視區域時,進行實際行高渲染;
21、數據更新模塊,用于在實際渲染后將實際行高數據更新到展示區塊上;
22、所述計算層包括字符類型拆分模塊、字符串長度計算模塊、換行高度計算模塊、換行高度合并模塊和計算層數據傳輸模塊;
23、字符類型拆分模塊,用于將日志分包數據解析后根據字符類型進行區分;
24、字符串長度計算模塊,用于對在根據字符類型區分后的日志分包數據計算字符串長度;
25、換行高度計算模塊,用于根據展示區域寬高信息計算換行高度;
26、換行高度合并模塊,用于將每一條日志的換行高度進行合并,形成行高數據;
27、計算層數據傳輸模塊,用于接收渲染層發送過來的日志分包數據,以及將計算層計算得到的行高數據發送給渲染層。
28、相對于現有技術,本發明具有如下技術效果:
29、本發明通過在渲染層設置了虛擬列表,并在計算層進行離屏運算,對日志數據進行了預運算,再將計算數據回傳并渲染到虛擬列表,實現了動態虛擬列表;監聽用戶實際的滾動操作,進行正式渲染且進行覆蓋記錄,提升渲染性能的同時避免重復計算渲染,大大提升了日志組件的運行流暢度。
30、下面結合附圖與實施例,對本發明進一步說明。
1.一種基于動態虛擬列表離屏運算的日志展示方法,其特征在于,包括以下步驟:
2.根據權利要求1所述的一種基于動態虛擬列表離屏運算的日志展示方法,其特征在于,在步驟s4中,將渲染層的日志分包數據下發傳輸給計算層中的webwork后臺進程進行解析、計算。
3.根據權利要求1或2所述的一種基于動態虛擬列表離屏運算的日志展示方法,其特征在于,將日志分包數據解析后根據字符類型進行區分,再分別計算字符串長度,并根據展示區域寬高信息計算換行高度,將每一條日志的換行高度進行合并,從而形成行高數據。
4.一種基于動態虛擬列表離屏運算的日志展示系統,其特征在于,包括:渲染層和計算層;