[發明專利]基于刷新率的定時器實現方法、裝置、設備及存儲介質在審
| 申請號: | 202010516070.8 | 申請日: | 2020-06-09 |
| 公開(公告)號: | CN111694619A | 公開(公告)日: | 2020-09-22 |
| 發明(設計)人: | 李琦;宋衛東 | 申請(專利權)人: | 重慶銳云科技有限公司 |
| 主分類號: | G06F9/448 | 分類號: | G06F9/448;G06F9/455;G06F16/957 |
| 代理公司: | 重慶智慧之源知識產權代理事務所(普通合伙) 50234 | 代理人: | 余洪 |
| 地址: | 401120 重慶*** | 國省代碼: | 重慶;50 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 刷新率 定時器 實現 方法 裝置 設備 存儲 介質 | ||
本發明提供一種基于刷新率的定時器實現方法、裝置、設備及存儲介質,其中,方法包括:獲取初始事件和初始事件對應的延期時間,定義對應初始事件的目標回調函數,將目標回調函數封裝為目標事件,根據目標事件建立全局事件隊列;定義一個事件遞歸方法,調用請求幀動畫函數,請求幀動畫函數用于遞歸執行事件遞歸方法;根據事件遞歸方法對目標事件進行處理,得到目標事件的活躍時長;調用目標回調函數,對活躍時長和延期時間進行比較和判斷,將判斷結果發送至事件遞歸方法中;若判斷結果符合預設值,執行目標事件,并將目標事件從全局事件隊列中刪除。該技術方案采用自定義的定時器方法,實現了流暢無卡頓的網頁交互效果,提高了用戶的體驗度。
技術領域
本發明涉及計算機通信技術領域,尤其涉及一種基于刷新率的定時器實現方法、裝置、設備及存儲介質。
背景技術
在平時使用Java script前端語言編寫程序的過程中,涉及到在指定的毫秒數之后調用函數或計算表達式的時候,通常會使用現有的函數方法:SetTimeout。但是此方法存在一定弊端:在移動網頁中,同一個頁面同時使用多個SetTimeout函數,會造成頁面卡頓,頁面加載不完全,卡死,或直接停止訪問頁面,影響用戶使用體驗,造成相應的移動網頁應用用戶流失,產生不可估量的經濟損失。
發明內容
基于此,有必要針對上述技術問題,提供一種基于刷新率的定時器實現方法、裝置、設備及存儲介質。
一種基于刷新率的定時器實現方法,所述方法包括:獲取初始事件和所述初始事件對應的延期時間,定義對應所述初始事件的目標回調函數,將所述目標回調函數封裝為目標事件,根據所述目標事件建立全局事件隊列;定義一個事件遞歸方法,調用請求幀動畫函數,所述請求幀動畫函數用于遞歸執行所述事件遞歸方法;根據所述事件遞歸方法對所述目標事件進行處理,得到所述目標事件的活躍時長;調用所述目標回調函數,對所述活躍時長和所述延期時間進行比較和判斷,將所述判斷結果發送至所述事件遞歸方法中;若所述判斷結果符合預設值,執行所述目標事件,并將所述目標事件從所述全局事件隊列中刪除。
在其中一個實施例中,所述獲取初始事件和所述初始事件對應的延期時間,定義與所述初始事件對應的目標回調函數,將所述目標回調函數封裝為目標事件,根據所述目標事件建立全局事件隊列之后,還包括:對所述目標事件的開始執行事件時間戳進行初始化處理,使得所述開始執行事件時間戳為0。
在其中一個實施例中,所述事件遞歸方法具體為:獲取當前時間,并循環所述全局事件隊列中所有的目標事件。
在其中一個實施例中,所述根據所述事件遞歸方法對所述目標事件進行處理,得到所述目標事件的活躍時長,包括:獲取所述目標事件的開始執行事件時間戳;獲取當前時間,并用所述當前時間減去所述開始執行事件時間戳,得到所述目標事件的活躍時長。
在其中一個實施例中,所述獲取所述目標事件的開始執行事件時間戳之后,還包括:判斷所述開始執行事件時間戳是否為0;若所述開始執行事件時間戳為0,則獲取當前時間,并將所述開始執行事件時間戳賦值為所述當前時間。
在其中一個實施例中,所述若所述判斷結果符合預設值,執行所述目標事件,并將所述目標事件從所述全局事件隊列中刪除之后,還包括:若所述判斷結果不符合預設值,保持所述目標事件活躍在所述全局事件隊列中。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于重慶銳云科技有限公司,未經重慶銳云科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010516070.8/2.html,轉載請聲明來源鉆瓜專利網。





