Files
chatroom/resources/js/chat-room/game-bootstrap.js
T

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;
}