js如何实现电脑不待机
防止电脑进入待机状态的 JavaScript 方法
通过 JavaScript 可以模拟用户活动或调用系统 API 来阻止电脑进入待机状态。以下是几种常见实现方式:
模拟用户活动
通过周期性触发微小操作(如鼠标移动或键盘事件)来保持系统活跃状态:

function preventSleep() {
const moveThreshold = 1; // 移动阈值(像素)
let x = 0;
setInterval(() => {
x = (x + moveThreshold) % 10;
window.dispatchEvent(new MouseEvent('mousemove', {
clientX: x,
clientY: 0
}));
}, 60000); // 每分钟触发一次
}
// 启动防待机
preventSleep();
请求屏幕唤醒锁(适用于浏览器环境)
现代浏览器支持 Wake Lock API,需要 HTTPS 环境:

let wakeLock = null;
async function requestWakeLock() {
try {
wakeLock = await navigator.wakeLock.request('screen');
console.log('屏幕唤醒锁已激活');
wakeLock.addEventListener('release', () => {
console.log('屏幕唤醒锁已释放');
});
} catch (err) {
console.error('唤醒锁请求失败:', err);
}
}
// 启动唤醒锁
requestWakeLock();
// 页面可见性变化时重新获取
document.addEventListener('visibilitychange', () => {
if (document.visibilityState === 'visible' && wakeLock !== null) {
requestWakeLock();
}
});
Node.js 环境下的实现
对于 Electron 或 NW.js 等桌面应用开发:
const { powerSaveBlocker } = require('electron');
const id = powerSaveBlocker.start('prevent-display-sleep');
console.log(`节能拦截ID: ${id}`);
// 停止拦截
// powerSaveBlocker.stop(id);
注意事项
- 浏览器 API 需要用户主动交互(如点击事件)后才能触发
- 部分 API 需要 HTTPS 环境
- 移动端设备可能有更严格的限制
- 长时间运行脚本可能导致浏览器性能下降
兼容性检查
在使用 Wake Lock API 前建议检测兼容性:
if ('wakeLock' in navigator) {
// 支持现代唤醒锁API
} else {
// 回退到模拟活动方案
}
以上方法可根据具体运行环境(浏览器/桌面应用)选择最适合的方案。对于生产环境,建议结合用户提示和权限请求来提升用户体验。






