亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何修改代碼使其不會在重新加載時運行?

如何修改代碼使其不會在重新加載時運行?

ibeautiful 2023-08-10 11:03:46
這段代碼,function dec2hex(dec) {    return dec < 10 ? "0" + String(dec) : dec.toString(16);  }  function generateId(len) {    var arr = new Uint8Array((len || 40) / 2);    window.crypto.getRandomValues(arr);    return Array.from(arr, dec2hex).join("");  }  var random = generateId(64);  document.getElementById("password").innerHTML = random;setInterval(function() {  function dec2hex(dec) {    return dec < 10 ? "0" + String(dec) : dec.toString(16);  }  function generateId(len) {    var arr = new Uint8Array((len || 40) / 2);    window.crypto.getRandomValues(arr);    return Array.from(arr, dec2hex).join("");  }  var random = generateId(64);  document.getElementById("password").innerHTML = random;}, 5000);<div id="password"></div>每 5 秒生成一個隨機字符串。但是,當頁面重新加載時,它會生成一個新字符串。我怎樣才能讓它在重新加載時不產生隨機刺痛?由于查詢有限,我沒有得到任何搜索結果。
查看完整描述

1 回答

?
拉丁的傳說

TA貢獻1789條經驗 獲得超8個贊

您可以使用LocalStorage.

代碼可能如下所示:


var lastTimeGenerated = window.localStorage.getItem('lastTimeGenerated') === null

    ? false

    : parseInt(window.localStorage.getItem('lastTimeGenerated'));

var generateInterval = 5000;


function dec2hex(dec) {

    return dec < 10 ? "0" + String(dec) : dec.toString(16);

}


function generateId(len) {

    var arr = new Uint8Array((len || 40) / 2);

    window.crypto.getRandomValues(arr);

    return Array.from(arr, dec2hex).join("");

}


function launchIntervalFnc() {

    intervalFnc();

    setInterval(intervalFnc, generateInterval);

}


function intervalFnc() {

    var random = generateId(64);

    document.getElementById("password").innerHTML = random;

    window.localStorage.setItem('lastTimePassword', random);

    window.localStorage.setItem('lastTimeGenerated', new Date().getTime());

}


if (lastTimeGenerated !== false && lastTimeGenerated + generateInterval > new Date().getTime()) {

    document.getElementById("password").innerHTML = window.localStorage.getItem('lastTimePassword');

    setTimeout(launchIntervalFnc, generateInterval - (new Date().getTime() - lastTimeGenerated));

} else {

    launchIntervalFnc();

}

<div id="password"></div>


查看完整回答
反對 回復 2023-08-10
  • 1 回答
  • 0 關注
  • 136 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號