減少 ChatGPT 官方網頁需要頻繁刷新的簡單辦法#
轉載自:https://www.v2ex.com/t/926890
多開一個標籤頁,訪問一個需要過驗證但又不會有交互請求的鏈接,例如:
裝個自動刷新的插件,我用的是 GitHub 隨便找的:
https://github.com/Claxtastic/just-refresh ( jquery.min.js 已經和官網的對比過是一致的)
我設置的間隔是 3 秒,對我來說很管用,希望能幫到你們。
原理很簡單,用別的更優雅的方式自然也可以實現。
油猴腳本#
油猴版本,不想裝油猴就直接在對話頁面的 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);
})();
上面這個油猴腳本僅僅 fetch 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);
})();
上面的油猴腳本佔用太高了,風扇呼呼的。
實測 robots.txt 也有效(fetch 可能失效大概是 Cloudflare 對 Headers 的檢測?)。
下面是 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);
})();