Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何使setInterval在后台选项卡中正确工作

如何使setInterval在后台选项卡中正确工作
EN

Stack Overflow用户
提问于 2022-11-05 07:37:01
回答 1查看 55关注 0票数 4

我每隔几秒钟就会使用setInterval (在3个Tamper猴子脚本中)检查三个不同的公共网站,这样我就可以在出现特定文本时得到通知。这些警报是为自由职业者提供的,可以在几秒钟内到期,所以我必须尽快。

所有的操作都是正确的,除非我在不同的选项卡或应用程序中工作,然后大约6分钟后,setInterval开始每分钟为后台选项卡“触发”一次,而不是每隔几秒钟一次。

有什么建议怎么解决吗?是否可以以某种方式使用Date.now()?请注意,我是一个完全的初学者,愿意学习,但需要保持尽可能简单。

我尝试过每3分钟使用window.location.reload()重新加载页面,但这是行不通的。我想我可以每隔几分钟创建一个脚本来激活和聚焦选项卡,但是这会中断我正在做的任何事情。我用下面的基本脚本对https://www.google.co.uk/进行了测试,以防脚本中的其他东西导致问题,但同样发生了:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var i = 0;
setInterval(function() {
    console.log("log: i:" + i);
    i = i+1;
    if(i==15) {
        i = 0;
        window.location.reload();
        console.log("reloaded window");
    }

}, 10000);

几分钟后,我每分钟只增加一次,甚至在窗口重新加载之后也是如此。

我看过这个问题

它提到了“工人”,但这些东西能在我不拥有的公共网站上被篡改吗?它还提供了一个链接,它建议播放一个几乎听不见的音频文件的解决方案--但我不知道在我的篡改脚本中播放该音频文件是否有效?

我看到这里有很多解决办法,但我不确定是否可以使用其中的任何一个。

例如,MutationObserver是否可以在篡改猴子中用于检测公共网站中的变化?即使它可以,想必每次我需要checK时,我都要重新加载网页?目前,我使用的是XMLHttpRequest,而不是加载网页(更快,使用较少的CPU)。

有趣的是,上面的链接似乎表明setInterval和SetTimeout是专门用于节流的,我想知道这是否意味着我可以使用其他函数。

我也见过,但我想我只能在我自己的网站上使用它?

EN

回答 1

Stack Overflow用户

发布于 2022-11-05 07:52:04

我可以想出几个选择。

  • 与其使用三个脚本,不如使用一个脚本,并在每个站点上运行该脚本(使用// @match *://*/*)。然后,使用单个脚本设置间隔。每当间隔回调运行时,就使用Tampermonkey的GM_setValueGM_getValue作为跨域存储来协调执行--回调将首先向getValue检查上一次检查是否超过3分钟前。如果是这样的话,它使用当前日期调用setValue并执行检查。这样,即使脚本在100个不同的选项卡上运行(一些在活动选项卡上,一些在后台选项卡中),它仍然每隔几分钟运行一次检查。 要执行检查,可以使用Tampermonkey的GM_xmlHttpRequest来跨越相同的来源限制;向这三个站点发出请求,并使用DOMParser将它们解析为文档,这样您就可以通过编程搜索它们以查找要查找的元素。
  • 从后端应用程序中执行检查,而不是从浏览器中执行--例如,使用Node和Puppeteer,这样就不会有节流问题。为了与您交流结果,您可以使用userscript或websocket与您的本地you服务器,或者您可以将webserver集成到一个电子应用程序中。这是我更喜欢的方法,我认为这是最健壮的。
  • 使用员工,哪个为一些人工作过
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74329132

复制
相关文章
扭力弹簧介绍
扭力弹簧是一种机械蓄力结构,主要用于古代弩炮和其他弩类。扭力弹簧通过对材质柔软、韧度较大的弹性材料的扭曲或旋转进行蓄力、利用,使被发射物具有一定的机械能。
枫桦
2022/08/02
8100
ADAMS弹簧的使用
针对带有弹簧的结构无法直接将弹簧模型导入并具备对应的效果,ADAMS View中提供了弹簧模块,可以直接在软件中创建弹簧,本文主要通过案例简单介绍弹簧的使用方法。
学识家
2022/05/05
1.2K0
使用Photoshop实现弹簧字效果
一、准备工作 软件环境:PhotoshopCS6 目的:使用路径实现弹簧字效果 二、实验步骤 1,新建画布  2,背景改为黑色,快捷键 Alt+Delete 3,键入文字 ,发现文字显示不出来,这时选
Zoctopus
2018/06/04
7120
程序员眼中的单词
英语中一个单词可能有很多不同的意思。很多中国开发者外语本来就不好,概念是往往先入为主。甚至在不清楚一般意义的情况下,先记住了特定环境中的意思。 单词 普通人眼中 开发者眼中 socket 插座 套接字 per­for­mance 演出 性能 ATM 自动取款机 异步传输模式 memory 记忆 内存 eclipse 日蚀 一种 IDE oracle 神谕 甲骨文公司 cookie 小甜点 一种 web session 机制 stack 堆 堆栈 port 港口 端口 cardboard 纸盒 Google
我是攻城师
2018/05/14
8840
iOS17适配指南之弹簧动画
YungFan
2023/07/09
6440
iOS17适配指南之弹簧动画
QT应用编程: QSpacerItem(弹簧)隐藏与显示
一、环境介绍 操作系统介绍:win10 64位 QT版本: 5.12.6 二、代码设置QSpacerItem隐藏与显示 UI设计界面上弹簧控件: 方法1: //显示弹簧控件代码 ui->horizontalSpacer->changeSize(100,20,QSizePolicy::Maximum); //设置尺寸与伸缩策略 ui->horizontalLayout->update(); //更新弹簧控件所在的布局器 //隐藏弹簧控件代码 ui->horizontalSpacer->change
DS小龙哥
2022/01/07
2.3K0
QT应用编程: QSpacerItem(弹簧)隐藏与显示
Newton–Raphson法解串联弹簧问题
如图所示的串联弹簧,F=100,弹簧刚度为k1 = 50 + 500u ,k2 = 100+ 200u ,u是弹簧伸长量,则平衡方程为 k1,k2带入得 Newton–Raphson方法就是一种线性迭
fem178
2018/04/08
6930
Newton–Raphson法解串联弹簧问题
Flash/Flex学习笔记(40):弹性运动续--弹簧
上一篇里演示的弹性运动加上摩擦力因素后,物体最终基本上都会比较准确的停在目标位置。但是我们回想一下现实世界中的弹簧,如果把弹簧的一头固定起来(即相当于目标点),而另一端栓一个球,把球拉开或压缩一定距离然后松手,事实上小球永远也不可能到达弹簧固定的那一端(因为弹簧即使压缩到最紧,也总有一定的长度) 所以如果要在Flash里模拟现实中的弹簧,真正的目标点绝不是弹簧的端点,而是目标点再偏移一段距离(即弹簧自然伸展时的长度) var ball:Ball = new Ball(6); addChild(ball);
菩提树下的杨过
2018/01/23
9190
Flash/Flex学习笔记(40):弹性运动续--弹簧
Modified Newton–Raphson method解串联弹簧问题
Newton–Raphson method每迭代一步,需要重新计算切线刚度矩阵,然后求解线性化的方程得到位移增量,计算量大,如图所示 Modified Newton–Raphson method不需要
fem178
2018/04/17
1.3K0
Modified Newton–Raphson method解串联弹簧问题
实现一个带下拉弹簧动画的 ScrollView
在刚推出的 Support Library 25.3.0 里面新增了一个叫 SpringAnimation 的动画,也就是弹簧动画。要是用它来做一个滑动控件下拉回弹的效果,应该不错吧。
NanBox
2019/07/09
1.3K0
旁观者.个性引导页个性引导页
这款个人主页简约而不失优雅,背景图片为随机api,共有38张随机图片,每次刷新都会看到不一样的美图。
小化先森
2023/03/05
1.1K0
冬眠动物克服肌肉萎缩,靠的居然是“肠子”|Science
行早 发自 凹非寺 量子位 | 公众号 QbitAI 由于缺乏规律的食物摄入,哺乳动物如何在冬眠期间维持生理功能一直是个谜。 虽然它们可以通过贴秋膘,慢代谢的方式节约能量,但这还是不够。 更糟糕的是,冬眠导致长时间无法活动,再加上饥饿,会促使身体分解肌肉蛋白以产生能量。 而一旦肌肉蛋白被分解,肌肉萎缩也就在所难免。 那冬眠动物是如何克服这个障碍的呢? Science上最新刊登的一项研究揭示了其中的奥妙。 锁定氮元素流失 在肌肉蛋白被分解这个问题上,最核心的损失是氮元素的流失。 用蛋白质提供能量的同时会有副
量子位
2022/03/04
2450
ubuntu如何修复引导
****前言:**** 今晚快要下班的时候,cp文件夹到U盘里面,由于文件过大并且里面的文件都是代码小文件,想想接近700M大有多少小文件,然而电脑就发烧式的发烫,真不敢想象呢,前所未有的发热,于是我就想关机来让电脑来歇歇,万万没想到的就是,电脑关机出现异常了,这时候我已经意识到电脑maybe出了问题。然后我就立马开机,果然不出我所料,电脑系统进不了了。来公司前我安装了linux+win双系统,电脑开机默认进入的是win系统,看到提示,感觉是win除了问题,真是奇怪:上次使用win系统都没有问题的,让你w
AlicFeng
2018/06/08
9.5K0
SpringBoot之引导类[Application]
  我们不管是做Spring的程序也好,还是做springMvc的程序也好,最终都会运行出一个spring容器出来,而我们所有的对象全部都已Bean的形式交给Spring容器管理。
叫我阿杰好了
2022/11/07
6570
SpringBoot之引导类[Application]
OpenCore引导黑苹果
OpenCore(OC)是一种新的引导方式,随着越来越多的kexts开始放弃Clover, 我相信提早使用OC会对你未来使用黑苹果会有很大的帮助。这是一个自然的现象,就像变色龙被Clover淘汰,而现在OC代替Clover也是大势所趋。你应该需要看一些相关的文章,来帮助你理解我的正文内容,同时也需要下载我推荐的软件:
用户6808043
2022/02/25
2K0
如何引导访客注册
原文出处: gkogan 译文出处:TerryFan 许多初创公司的命运几乎完全取决于一个转换点:访问者何时转换成用户。 很多时候,这个关键的任务落在了再普通不过的“注册”按钮的肩上,而这个可怜的按钮在产品开发中却往往得不到任何考虑和关注。 如果你花一点时间来考虑注册按钮的措辞,也许就能大幅增加注册用户转化率。(当然在访客成为用户之后的事情至关重要,但一旦你有了用户的邮件地址,事情都会变得容易得多。) 各初创公司的注册按钮 为什么“注册”按钮起不了作用 它们被忽略了。当访客重复看到许多网站都共有的元
wangxl
2018/03/08
1.2K0
如何引导访客注册
android覆盖式引导
我们在开发产品的时候,每次发版可能会有一些新的功能需要引导用户使用,以前大部分都是使用截图,然后让设计师把引导的问题修饰好放到图上,现在这张图片就是引导图片,我们只需要用这张图片放到界面上,这样基本上就可以满足引导的作用.
飞雪无情
2018/08/28
1K0
android覆盖式引导
window引导配置bcdedit
以前的系统上有boot.ini配置,现在没有了只能bcdedit修改系统配置,或者msconfig修改(可修改项有限)
sofu456
2020/07/26
9460
使用OC引导ubuntu
按任意键进入输入模式,然后我们需要找到ubuntu的grub引导所在的分区. 直接输入 FS0: 回车,就能进入这个分区,然后再输入ls回车,查看里面的文件,看这个是不是存grub引导的地方.
GOOPHER
2022/03/31
3.3K0
使用OC引导ubuntu
Spring Boot引导过程
引导Spring Boot应用程序的一种方法是使用Spring Initializer。为此需要访问Spring Initializer 网页 www.start.spring.io[1] 并选择 Build,Spring Boot版本和平台。此外还需要提供组,工件和所需的依赖项来运行应用程序。
黑洞代码
2021/07/14
9030
Spring Boot引导过程

相似问题

如何使弹簧引导、空间冬眠和后置How工作?

114

弹簧,冬眠,MySQL应力测试

20

冬眠-弹簧中的Haversine公式

117

带弹簧的冬眠.hbm.xml filenotfoundException

26

非弹簧引导应用的弹簧引导测试

37
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文