js如何实现电脑不待机
禁用系统休眠功能
通过调用 navigator.wakeLock API 可以阻止屏幕休眠(仅限支持该API的浏览器,如Chrome)。需先检查浏览器支持性,再请求唤醒锁:
let wakeLock = null;
async function preventSleep() {
try {
if ('wakeLock' in navigator) {
wakeLock = await navigator.wakeLock.request('screen');
console.log('唤醒锁已激活');
}
} catch (err) {
console.error('唤醒锁失败:', err);
}
}
// 页面可见性变化时重新申请(如用户切换标签页后返回)
document.addEventListener('visibilitychange', async () => {
if (wakeLock !== null && document.visibilityState === 'visible') {
await preventSleep();
}
});
注意:此API需在HTTPS环境或localhost下生效,且可能因省电模式失效。
模拟持续活动
通过周期性触发微小任务(如音频播放或网络请求)可间接阻止休眠:
// 方法1:使用无声音频
const audio = new AudioContext();
function keepAlive() {
setInterval(() => {
audio.resume(); // 每10秒恢复音频上下文
}, 10000);
}
// 方法2:发送心跳请求
function sendHeartbeat() {
setInterval(() => {
fetch('/heartbeat', { method: 'HEAD' });
}, 30000);
}
此方法可能增加功耗,且部分浏览器会限制后台标签页的资源使用。
全屏或媒体播放状态
当页面处于全屏模式或播放视频/音频时,系统通常不会休眠:

// 进入全屏模式
document.documentElement.requestFullscreen();
// 播放隐藏视频元素
const video = document.createElement('video');
video.src = 'silent.mp4';
video.loop = true;
video.play();
注意事项
- 上述方法仅在浏览器环境生效,无法影响操作系统级别的休眠设置。
- 部分方案需用户主动交互(如点击事件)才能触发,因浏览器安全策略限制。
- 长时间阻止休眠可能导致设备发热或耗电增加,需谨慎使用。






