在后台脚本中设置间隔

2024-01-28

我正在为实时产品开发浏览器扩展。我有一个在manifest.json 中设置了“persistent : true”的背景页面(我使用的是v2 版本)。我使用 setInterval() 每秒不断地轮询服务器以获取新数据。后台脚本还会缓存迄今为止收集的数据,并将其提供给任何新打开的选项卡。

一切工作正常,直到有时我注意到当我让计算机长时间处于睡眠状态时,我对服务器的轮询就会停止!如果我刷新任何现有选项卡,我确实会看到缓存的数据。这意味着,后台页面没有被 Chrome 杀死。我的问题是,为什么 chrome 只是停止 setInterval() 调用?另外,如果投票因某种原因停止,恢复投票的正确方法是什么?

//relevant part of manifest.json
  "background": {
    "scripts": [
      "js/background/jquery.min.js",
      "js/background/bgconfig.js",
      "js/background/backgroundmanager.js",
      "js/background/eventsfetcher.js"
    ],

    "persistent": true
  },

Thanks!


根据 chrome 文档,你应该使用警报API https://developer.chrome.com/docs/extensions/reference/alarms/反而。我不知道它是否能解决问题,但绝对值得尝试!

I quote:

如果您的扩展程序使用 window.setTimeout() 或 window.setInterval(),请改用警报 API。如果事件页面关闭,基于 DOM 的计时器将不会被执行。

https://web.archive.org/web/20130715023501/http://developer.chrome.com/extensions/event_pages.html https://web.archive.org/web/20130715023501/http://developer.chrome.com/extensions/event_pages.html

=> https://developer.chrome.com/docs/extensions/reference/alarms/ https://developer.chrome.com/docs/extensions/reference/alarms/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在后台脚本中设置间隔 的相关文章

随机推荐

  • 如何使用新的 xml 属性并兼容旧版 Android 版本?

    我已经向我的应用程序添加了小部件功能 该功能与旧版本的 Android 回到 1 6 兼容 Android 3 1 中的小部件支持 xml 标签调整大小模式这是一个非常有用的功能 我希望允许用户调整他们的小部件的大小 但我仍然希望向后兼容
  • Flutter:我想在运行时将字体应用于整个应用程序文本

    我的应用程序中有语言选择设置 根据语言选择英语或阿拉伯语 我想使用不同的字体系列 我在 MaterialApp 内完成了它 但它不会实现我的目标 override Widget build BuildContext context retu
  • Phonegap/Cordova 构建错误 - Apple Mach-O 链接器错误:没有这样的文件或目录:libCordova.a

    创建新的 Cordova 2 1 0 项目并使用以前的 PhoneGap 应用程序中的一些代码更新 www 文件夹后 我收到错误 clang error no such file or directory Users peterbanjo
  • NoSQL 数据库中的全文搜索 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 这里有人有部署真正的在线系统的经验吗 该系统在任何 NoSQL 数据库中进行全文搜索 例如 全文搜索在 MongoDB Riak 和
  • PullToRefreshListView$InternalListViewSDK9 中的 IllegalStateException

    我在应用程序的两个活动中使用 PullToRefresh 库 我知道 这个库已被弃用 但它非常有用 它不仅可以处理来自顶部的刷新手势 还可以处理来自底部的刷新手势 但它有一个问题 应用程序很少因以下日志而崩溃 java lang Illeg
  • 如何在 Java 中格式化字符串

    原始问题 但如何格式化这样的字符串 第 1 步 共 2 步 通过使用 Java 替换变量 在 C 中这很容易 看一眼字符串格式 http download oracle com javase 6 docs api java lang Str
  • 将 float 转换或转换为 nvarchar?

    我需要从数据类型 float 的一列中进行选择 并将其作为 nvarchar 插入到另一列中 我尝试投射它 cast Column Name as nvarchar 50 结果是9 07235e 009而不是 10 位数字 电话号码 有谁知
  • Java 中覆盖方法的更广泛的参数类型

    下面的代码破坏了什么面向对象原则 不是 Java OO 原则 而是通用 OO 原则 class GeneralArg class Arg extends GeneralArg class A public void test Arg a c
  • 如何从数据库服务器插入带有时间戳的 MongoDB 文档

    在 Oracle 中 我可以简单地这样做 INSERT INTO myTable VALUES someValue SYSTIMESTAMP 这会将两个值插入到 myTable 中 其中之一是基于数据库服务器时间的时间戳 对于 MongoD
  • Grails 挂在命令行上

    我刚刚下载了 Grails 2 0 1 创建了一个新项目 然后尝试按照文档添加 mysql 连接器 但 Grails 在命令提示符下挂起 没有任何消息 我尝试以详细和堆栈跟踪模式执行 但它什么也没打印 我尝试清理并重新执行 但所有 grai
  • Jenkins Pipelines:如何从共享变量脚本使用 withCredentials()

    我想用一个withCredentials 块在共享变量 vars 脚本中而不是直接在 Jenkins 管道中 因为这是特定库的较低级别语义 并且根据具体情况可能需要也可能不需要 然而 withCredentials 或者 至少 它的签名 似
  • 如何在 OpenCV + Visual C++ 中测量对比度

    以前的问题是 如何在 OpenCV 中选择最佳对比度的图像 但根据 Rook 的建议 我正在更改它 我将在我的项目中使用 OpenCV Visual Studio 2010 我只是想知道 OpenCV 如何让这对我来说更容易 我从视频中提取
  • SQL Server - 缺少索引 - 什么会使用索引?

    我正在使用 SQL Server 2008 我们正在使用 DMV 来查找丢失的索引 然而 在创建新索引之前 我试图找出哪个 proc query 需要该索引 我想要获得最多的信息 以便我可以对我的索引做出明智的决定 有时 SQL Serve
  • 将 List 转换为分隔字符串列表 [重复]

    这个问题在这里已经有答案了 可能的重复 从 List 返回字符串的最优雅的方式 https stackoverflow com questions 1334072 most elegant way to return a string fr
  • OpenCV Android 使用最大轮廓的边缘创建新图像

    我能够检测图像中最大的正方形 矩形 绿色 但是 我想将图像中检测到的最大正方形 矩形转换为新图像 存储在新的 Mat 中 这是该函数的返回图像 其上有最大的矩形 正方形 http img153 imageshack us img153 93
  • NodeJS 从后台进程读取 stdin

    我有一个在 Ubuntu 12 04 LTS 下作为服务运行的节点进程 它在 etc init 下有一个配置文件 该系统在连接了条形码阅读器的无头 x86 路由器板上运行 我需要做的是能够读取来自条形码阅读器的输入 其行为类似于 USB 键
  • 在 .NET Core 中使用 SHA-1

    在 dotnet core 中对字符串进行哈希处理时 我得到了奇怪的结果 我发现了这个类似的问题 使用 ASP NET Core 计算 SHA1 https stackoverflow com questions 35363358 comp
  • sqlite,从另一个表中的列更新列

    我目前正在处理更新的查询table1 state从数据中table2 state基于两个表中的城市字段 换句话说 当表 1 和表 2 中的城市字段匹配时 用表 2 中的州更新表 1 我遇到的问题是 当没有城市匹配时 会随机添加一个州 例如爱
  • 真的需要通配符泛型吗?

    例如 public String add Set gt 这是一个列表的列表 该方法可以向其中添加不同组件类型的列表 public void foo List
  • 在后台脚本中设置间隔

    我正在为实时产品开发浏览器扩展 我有一个在manifest json 中设置了 persistent true 的背景页面 我使用的是v2 版本 我使用 setInterval 每秒不断地轮询服务器以获取新数据 后台脚本还会缓存迄今为止收集