UNPKG

idle-resource-loader

Version:

Lightweight resource preloading SDK that intelligently utilizes browser idle time for optimal performance. Features smart concurrency control, dynamic time slicing, and user experience first design.

69 lines (68 loc) 1.83 kB
//#region src/types.d.ts /** * 资源类型 - 支持字符串路径 */ type ResourceInput = string; /** * 加载策略类型 */ type LoadStrategy = 'immediate' | 'idle'; /** * 基础加载配置 */ interface BaseLoadConfig { /** 每批处理的资源数量,默认 1。优先保证页面初始化资源的网络带宽 */ batchSize?: number; /** 超时时间(毫秒),默认 15000 */ timeout?: number; /** 资源加载失败回调 */ onError?: (url: string, error: Error) => void; } /** * 统一的加载选项接口 */ /** * loadResources 函数的选项接口 */ type LoadResourcesOptions = BaseLoadConfig & { /** 加载策略,默认 'immediate' */ strategy?: LoadStrategy; }; /** * 空闲队列任务接口 */ //#endregion //#region src/index.d.ts /** * 🚀 统一资源加载函数 - 核心 API * * 支持立即加载和空闲加载两种策略的统一接口 * * @param resources 资源URL字符串或字符串数组 * @param options 加载选项,包含 strategy 字段来选择加载策略 * * @example * // 立即加载(默认) * loadResources(['/assets/image.jpg', '/assets/font.woff']) * * // 空闲加载 * loadResources(['/assets/video.mp4'], { strategy: 'idle' }) * * // 带配置的立即加载 * loadResources(['/assets/image.jpg'], { * strategy: 'immediate', * batchSize: 2, * timeout: 15000, * onError: (url, error) => console.error('Failed:', url, error) * }) * * // 空闲加载配置 * loadResources(['/assets/video.mp4'], { * strategy: 'idle', * batchSize: 1, * onError: (url, error) => console.error('Failed:', url, error) * }) */ declare function loadResources(resources: ResourceInput | ResourceInput[], options?: LoadResourcesOptions): void; //#endregion export { LoadResourcesOptions, ResourceInput, loadResources };