避免使用 Javascript/JQuery 重新加载页面和按下重新加载

Avoid page reload and when press reload using Javascript/JQuery

我正在创建一个考试应用程序,我希望用户在参加考试时防止页面重新加载,因为它也会刷新考试计时器。有没有什么方法可以直接避免 Javascript 中的页面重新加载,或者有人可以建议另一种理想的方法,比如显示弹出窗口和避免页面重新加载之类的吗?

你不能真正阻止用户重新加载,因为这是浏览器的默认行为,你可以做的是将计时器值存储在某个地方(后端服务器或本地存储),然后从那里获取值在每个会话期间

// you cannot run this snippet here because of stack security reasons
let timerValue = localStorage.getItem('timer') || 10; // if timer value is not found then it should be 10 seconds by default

const wait = (ms) => new Promise(r => setTimeout(r, ms));

run();

async function run() {
    console.log('timer has begun');
    while(true) {
        if (timerValue <= 0) break;
        timerValue--;
        localStorage.setItem('timer', timerValue);
        await wait(1000);
    }

    console.log('timer has ended');
    localStorage.setItem('timer', null); // reset timer once the test is finished
}

注意:这只是一个临时解决方案,更好的办法是设置一个快速服务器作为您的支持,并使用它为每个会话提供计时器值