Tom

Tom

减少 ChatGPT 官方网页需要频繁刷新的简单办法

减少 ChatGPT 官方网页需要频繁刷新的简单办法#

转载自:https://www.v2ex.com/t/926890

多开一个标签页,访问一个需要过验证但又不会有交互请求的链接,例如:

https://chat.openai.com/404

装个自动刷新的插件,我用的是 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);
})();
加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。