Web Performance Enhancer - Firefox & Firefox Forks

Quicklink Enabling for Firefox & Firefox Forks

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

    // ==UserScript==
    // @name         Web Performance Enhancer - Firefox & Firefox Forks
    // @namespace    http://tampermonkey.net/
    // @version      1.4
    // @description  Quicklink Enabling for Firefox & Firefox Forks
    // @author       DR LEVONK
    // @match        *://*/*
    // @grant        none
    // @license      MIT
    // ==/UserScript==
     
    (function() {
        'use strict';
     
        // Load Quicklink library to enhance link prefetching
        const script = document.createElement('script');
        script.src = 'https://unpkg.com/[email protected]/dist/quicklink.umd.js';
        script.onload = () => {
            if (typeof quicklink !== 'undefined') {
                try {
                    quicklink.listen({
                        origins: true,
                        ignores: [
                            (uri) => uri.includes('logout'),
                            (uri) => uri.includes('login'),
                            (uri) => uri.includes('account')
                        ]
                    });
                } catch (error) {
                    console.error('Error initializing Quicklink:', error);
                }
            } else {
                console.error('Quicklink library is not available.');
            }
        };
        script.onerror = () => {
            console.error('Error loading Quicklink library.');
        };
        document.head.appendChild(script);
     
        // Global error listener
        window.addEventListener('error', (event) => {
            console.error('Script error:', event.message, 'at', event.filename, 'line', event.lineno);
        });
     
        // Prevent navigation to logout, login, or account pages on link clicks
        document.addEventListener('click', (event) => {
            const target = event.target.closest('a[href]');
            if (target && (target.href.includes('logout') || target.href.includes('login') || target.href.includes('account'))) {
                event.preventDefault();
                console.warn('Prevented navigation to:', target.href);
            }
        });
     
        // Prevent 503 errors by sending keep-alive requests
        const sendKeepAlive = () => {
            const url = '/keep-alive';
            if (navigator.sendBeacon) {
                try {
                    navigator.sendBeacon(url, '');
                } catch (error) {
                    console.error('Error sending beacon:', error);
                }
            } else {
                const xhr = new XMLHttpRequest();
                xhr.open('POST', url, true);
                xhr.onerror = () => {
                    console.error('Error with keep-alive request:', xhr.statusText);
                };
                xhr.send('');
            }
        };
        setInterval(sendKeepAlive, 300000); // Send keep-alive request every 5 minutes
     
    })();