【发布时间】:2015-10-09 07:05:15
【问题描述】:
我有一小段代码每 500 毫秒连续单击一个名为“查看旧消息”的按钮,以便从网页加载无限滚动的内容。这样做的原因是个人的,但不用说,我正在尝试自动化一些事情,否则我需要数周的不间断滚动才能做到这一点。
问题在于,随着脚本运行时间的推移,500 毫秒的延迟逐渐开始下降。这么多小时后,可能需要 5 秒或更长时间。我假设这个问题是由 Facebook 在这么长时间后限制我的请求引起的,所以为了防止这种情况,我想让脚本运行一段时间 - 比如 2 分钟 - 然后在它运行之前延迟大约 20 秒再持续 2 分钟,以此类推。我该怎么做呢?我绞尽脑汁,但我对 JavaScript 的有限知识并没有想出任何有意义的东西。
下面是完整的当前代码。
setInterval(function () {
document.getElementById('see_older').getElementsByClassName('content')[0].click();
}, 500);
非常感谢。
【问题讨论】:
-
这可能只是您的浏览器因闲置而失去操作系统注意力的问题。在这种情况下,将无法通过 JavaScript 加快速度。
-
如果向下滚动时页面上的所有先前内容仍在页面上,也可能是内存问题
-
一种可能的选择是使用带有 youtube 视频的 iframe,并在播放该视频并在后台运行脚本时让浏览器选项卡保持焦点。这可能会迫使操作系统保留该浏览器选项卡的资源。
-
@arcyqwerty 就是这样,最后我运行了它运行在 170 万 K 内存的脚本。这种解决方案不会解决甚至缓解问题吗?
-
170 万 K 等于 1.7 GB。您的浏览器可能无法快速处理那么多数据。由于它还没有崩溃,我假设你没有使用 IE。最好将您想要的内容提取到文件中并将其保存到磁盘,但这是一个不同的问题。
标签: javascript loops delay