javascript - Chrome 扩展 - 使用 javascript 定期运行并永久记录数据

标签 javascript database google-chrome google-chrome-extension

目前,我有一个脚本,当单击右上角托盘中的图像时(仅适用于一个特定允许的网站),它会扫描页面 HTML,然后输出一些值。这种扫描和输出是单个 JS 文件中的一个函数,称为 checkData.js。

即使用户没有主动使用选项卡但它已打开,是否有可能自动让脚本每 10 秒运行一次并将数据记录到我稍后可以在扩展中访问的某个位置?这是因为页面 HTML 不断变化。我想我会使用警报或事件页面,但我不确定如何集成它们。

最佳答案

Chrome 将重复闹钟的频率限制为每分钟最多一次。如果没问题,请按以下步骤操作:

参见here关于如何设置事件页面。

在background.js中你会做这样的事情:

// event: called when extension is installed or updated or Chrome is updated
function onInstalled() {
    // CREATE ALARMS HERE
    ...
}

// event: called when Chrome first starts
function onStartup() {
    // CREATE ALARMS HERE
    ...
}

// event: alarm raised
function onAlarm(alarm) {
    switch (alarm.name) {
        case 'updatePhotos':
            // get the latest for the live photo streams
            photoSources.processDaily();
            break;
        ...
        default:
            break;
    }
}

// listen for extension install or update
chrome.runtime.onInstalled.addListener(onInstalled);

// listen for Chrome starting
chrome.runtime.onStartup.addListener(onStartup);

// listen for alarms
chrome.alarms.onAlarm.addListener(onAlarm);

创建重复闹钟是这样完成的:

// create a daily alarm to update live photostreams
function _updateRepeatingAlarms() {
    // Add daily alarm to update 500px and flickr photos
    chrome.alarms.get('updatePhotos', function(alarm) {
        if (!alarm) {
            chrome.alarms.create('updatePhotos', {
                when: Date.now() + MSEC_IN_DAY,
                periodInMinutes: MIN_IN_DAY
            });
        }
    });
}

关于javascript - Chrome 扩展 - 使用 javascript 定期运行并永久记录数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36241436/

相关文章:

java - 存储数据库连接相关信息的最佳做法是什么?

android - 我怎样才能减少我的应用程序大小与 android 中的数据库

javascript - 将 Json 日期字符串转换为 JavaScript 日期对象

javascript - Nodejs Promise 设计中的内存泄漏?

javascript - 最小化 jquery.append 繁重站点的 DOM 访问

javascript - background.html 与 background.js - chrome 扩展

javascript - 在带有触摸屏的 Windows 上禁用屏幕调整大小

javascript - 如何在 AWS S3 中上传 Image Buffer 数据?

sql-server - 如何查找当前使用的数据库名称?

asp.net - Chrome ERR_HTTP2_PROTOCOL_ERROR + Firefox 安全连接失败