ChatGPT 公式ウェブページの頻繁なリフレッシュを減らす簡単な方法#
転載元:https://www.v2ex.com/t/926890
別のタブを開き、検証が必要ながらも相互作用のリクエストがないリンクにアクセスしてください。例:
自動リフレッシュのプラグインをインストールします。私は GitHub で見つけたものを使用しています:
https://github.com/Claxtastic/just-refresh (jquery.min.js は公式ウェブサイトと比較して同じです)
私は 3 秒間隔に設定していますが、私にとっては非常に有用です。あなたのお役に立てれば幸いです。
原理は非常にシンプルで、他のよりエレガントな方法でも実現できます。
Tampermonkey スクリプト#
Tampermonkey バージョンで、Tampermonkey をインストールしたくない場合は、直接対話ページの DevTools - Console で実行してください。
少しエレガントで、別のタブを開く必要はありません。
DevTools - Network にたくさんの 404 リクエストがあることに誰も気にしないでしょうか?
// ==UserScript==
// @name ChatGPT heartbeat
// @namespace http://tampermonkey.net/
// @version 0.1
// @description try to take over the world!
// @author https://v2ex.com/t/926890
// @match https://chat.openai.com/*
// @icon https://chat.openai.com/favicon.ico
// @grant none
// ==/UserScript==
(function() {
'use strict';
setInterval(function(){
fetch('https://chat.openai.com/404');
}, 3000);
})();
上記の Tampermonkey スクリプトは、404 をフェッチするだけでは自動リフレッシュがあまり効果的ではないようです。実際にはリフレッシュが必要ですので、iframe を使用しました。書き方は良くないかもしれませんが、ご指摘いただければ幸いです。
// ==UserScript==
// @name ChatGPT heartbeat
// @namespace http://tampermonkey.net/
// @version 0.1
// @description try to take over the world!
// @author https://v2ex.com/t/926890
// @match https://chat.openai.com/*
// @icon https://chat.openai.com/favicon.ico
// @grant none
// ==/UserScript==
(function () {
var iframe = document.createElement("iframe");
iframe.id = "heartbeat";
iframe.style = "display:none";
iframe.name = "heartbeat";
iframe.src = "https://chat.openai.com/404/";
var fn = function () {
setTimeout(function(){
iframe.src = "https://chat.openai.com/404/" + Math.random();
}, 3000);
};
if (iframe.attachEvent) {
iframe.attachEvent("onload", fn);
} else {
iframe.onload = fn;
}
document.body.insertBefore(iframe, document.body.firstChild);
})();
上記の Tampermonkey スクリプトは、リソースを多く消費します。実際には、robots.txt も効果的です(fetch が失敗するのはおそらく Cloudflare がヘッダーを検出しているためです)。以下は ChatGPT heartbeat の最終バージョンで、将来的に robots.txt が無効になった場合はリンクを自分で 404 に変更できます。5 秒ごとにリクエストするのが頻繁すぎると感じる場合は、時間間隔を調整してください。
// ==UserScript==
// @name ChatGPT heartbeat
// @namespace http://tampermonkey.net/
// @version 0.1
// @description try to take over the world!
// @author https://v2ex.com/t/926890
// @match https://chat.openai.com/chat/*
// @icon https://chat.openai.com/favicon.ico
// @grant none
// ==/UserScript==
(function () {
var iframe = document.createElement("iframe");
iframe.id = "heartbeat";
iframe.style = "display:none";
iframe.name = "heartbeat";
iframe.src = "https://chat.openai.com/robots.txt";
var fn = function () {
setTimeout(function(){
document.getElementById('heartbeat').contentWindow.location.reload(true);
}, 5000);
};
if (iframe.attachEvent) {
iframe.attachEvent("onload", fn);
} else {
iframe.onload = fn;
}
document.body.insertBefore(iframe, document.body.firstChild);
})();