Intelligently refreshes web pages only when content changes - no configuration needed
当前为
// ==UserScript==
// @name Smart Page Auto Refresh
// @namespace http://tampermonkey.net/
// @version 1.0
// @description Intelligently refreshes web pages only when content changes - no configuration needed
// @author kequn yang
// @match *://*
// @match file:///*
// @grant none
// @run-at document-end
// @license MIT
// ==/UserScript==
(function() {
'use strict';
let lastContentHash = '';
const REFRESH_INTERVAL = 1000; // 1 second default interval
function getContentHash() {
const content = document.body.innerHTML;
let hash = 0;
for (let i = 0; i < content.length; i++) {
const char = content.charCodeAt(i);
hash = ((hash << 5) - hash) + char;
hash = hash & hash;
}
return hash.toString();
}
function hasContentChanged() {
const currentHash = getContentHash();
const hasChanged = lastContentHash !== currentHash;
lastContentHash = currentHash;
return hasChanged;
}
async function checkAndRefresh() {
try {
const response = await fetch(window.location.href);
const text = await response.text();
const tempDiv = document.createElement('div');
tempDiv.innerHTML = text;
if (hasContentChanged()) {
window.location.reload();
}
} catch (error) {
window.location.reload();
}
}
function setupAutoRefresh() {
lastContentHash = getContentHash();
setInterval(checkAndRefresh, REFRESH_INTERVAL);
}
setupAutoRefresh();
})();