人物のポートレートを処理するキオスクがあります。Chromeで実行されています。
キオスクを使用する200人に1人は、プロセス中にキオスクがフリーズすることになります。それがフリーズするとき、私は「ああスナップ」を決して得ず、ページはちょっとハングします。
ページを監視してハートビートをチェックする拡張機能を作成できるかどうか疑問に思っていました。30秒経っても表示されない場合は、ウィンドウをリロードしてください。
どんな助けでも素晴らしいでしょう。
人物のポートレートを処理するキオスクがあります。Chromeで実行されています。
キオスクを使用する200人に1人は、プロセス中にキオスクがフリーズすることになります。それがフリーズするとき、私は「ああスナップ」を決して得ず、ページはちょっとハングします。
ページを監視してハートビートをチェックする拡張機能を作成できるかどうか疑問に思っていました。30秒経っても表示されない場合は、ウィンドウをリロードしてください。
どんな助けでも素晴らしいでしょう。
キオスクページのコンテンツスクリプトに、X秒ごとにバックグラウンドページにメッセージを送信させる
コンテンツスクリプトの場合:
var port = chrome.extension.connect({ name: "keep-alive" });
port.postMessage('is-alive', { alive: true });
setInterval(function () {
port.postMessage('is-alive', { alive: true });
}, 1000 * 15);
バックグラウンドページがメッセージが一定時間後に戻ってこないことを検出した場合は、タブをリロードします
バックグラウンドページ:
var last = Date.now();
var interval = 1000 * 15;
chrome.extension.onConnect.addListener(function (port) {
if (port.name === 'keep-alive') {
port.onMessage.addListener(function (data) {
if (data.type === 'is-alive' && data.payload.alive === true) {
last = Date.now();
}
});
}
});
setInterval(function () {
if (Date.now() - last > interval) {
// Reload the tab...
}
}, interval);
タブの再読み込みについては、chrome.tabs
ドキュメントを参照してください。tabs
マニフェストの許可リストに追加する必要があります。
メッセージパッシングについて詳しく知りたい場合は、メッセージングドキュメントを参照してください。