35 lines
817 B
JavaScript
35 lines
817 B
JavaScript
|
|
// 聊天室游戏延迟初始化工具,避免非关键游戏逻辑抢占首屏渲染资源。
|
||
|
|
|
||
|
|
/**
|
||
|
|
* 延迟执行非关键游戏初始化。
|
||
|
|
*
|
||
|
|
* @param {Function} callback
|
||
|
|
* @param {number} [timeout]
|
||
|
|
* @returns {void}
|
||
|
|
*/
|
||
|
|
export function deferChatGameBootstrap(callback, timeout = 2500) {
|
||
|
|
if (typeof callback !== "function") {
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
|
||
|
|
if ("requestIdleCallback" in window) {
|
||
|
|
window.requestIdleCallback(callback, { timeout });
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
|
||
|
|
window.setTimeout(callback, Math.min(timeout, 1200));
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* 暴露游戏延迟初始化入口给存量游戏面板脚本。
|
||
|
|
*
|
||
|
|
* @returns {void}
|
||
|
|
*/
|
||
|
|
export function bindGameBootstrapControls() {
|
||
|
|
if (typeof window === "undefined") {
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
|
||
|
|
window.deferChatGameBootstrap = deferChatGameBootstrap;
|
||
|
|
}
|