只执行一次JavaScript函数并记住它

Execute JavaScript function only once and remember it

本文关键字:函数 JavaScript 一次 执行      更新时间:2023-09-26

我有这个JavaScript函数,我只需要执行一次(当满足某些条件时),然后让cookie记住它,并且在24小时内不再运行它。

我尝试了这个脚本使用jquery.cookie.js插件,但它不工作:

var eventsFired = ($.cookie('eventsFired') != null)
? $.cookie('eventsFired')
: 0;
function load() {
  if (eventsFired == 0){
    if (window.frames[0].document.getElementById('applications')) {
      var str=document.getElementById("tst").innerHTML;
      var n=str.replace("Login","Logout");
      document.getElementById("tst").innerHTML=n;
      document.getElementById('tst').title ='logout';
      document.getElementById('tst').href='logout';
      document.getElementById('prt').href='../profile/cont.html';
      eventsFired++;
      $.cookie('eventsFired', eventsFired);
    }
  }
}

Localstorage:

function load() {
var eventsFired = localStorage.getItem('fired');
if (eventsFired == '1'){
  if (window.frames[0].document.getElementById('applications'))
{
var str=document.getElementById("tst").innerHTML;
var n=str.replace("Login","Logout");
document.getElementById("tst").innerHTML=n;
document.getElementById('common').href='..css/common2.css';
document.getElementById('tst').title ='logout';
document.getElementById('tst').href='logout';
document.getElementById('prt').href='../profil/cont.html';
  localStorage.setItem('fired', '1');
}
}
}

不要使用cookie:它会在每次请求时发送给服务器。您可以使用本地存储:

function load() {
  var eventsFired = localStorage.getItem('fired');
  if (eventsFired != '1'){
      doYourStuff();
      localStorage.setItem('fired', '1');
  }
}