页面切换或刷新时保持脚本持续运行的可行方案咨询
页面切换/刷新时保持脚本持续运行的可行方案
首先给你明确结论:是的,让承载脚本的主页面始终保持活跃是唯一能满足你需求的方案。
咱们拆解下为什么其他路子走不通:
- 当页面刷新、切换到其他标签页或者被关闭时,当前页面的整个JavaScript执行上下文会被浏览器彻底销毁,脚本会立刻停止运行。这是浏览器的安全和内存管理机制决定的——尤其是像你提到的这种占50%负载的加密矿工脚本,浏览器对后台页面的脚本执行限制会更严格,哪怕只是切到后台,都可能被降速甚至暂停。
- 你可能会想到用Web Workers?但Web Workers是完全依附于当前页面的,页面被销毁时Worker也会跟着终止,根本没法跨页面持续运行。
- 至于LocalStorage、SessionStorage这类存储方案,只能帮你保存脚本的运行状态,没法让脚本在后台一直跑,而你已经明确说不能靠重启补全耗时,所以这些方案直接不适用。
- 那Service Workers呢?它确实能在后台运行,但它的设计初衷是处理缓存、推送通知这类轻量任务,浏览器对它的CPU和内存限制极严,根本撑不起50%负载的计算需求,而且它也不适合做这种持续高负载的挖矿计算。
所以回到你的核心需求:如果脚本必须持续不间断运行,且不能通过恢复状态补全耗时,那唯一的办法就是让承载它的主页面始终保持在前台活跃状态——用户不能切换标签、不能刷新、不能关闭页面。只要页面一离开当前活跃标签,浏览器的后台限制就可能打断脚本的持续运行。
内容的提问来源于stack exchange,提问作者Nahbyr
相关产品推荐
相关产品推荐

