我如何每天在javascript中运行一次加载函数?

时间:2015-06-17 05:59:16

标签: javascript function

让我们说它是6月18日,一个人运行javascript并且它在加载时运行一个函数,但是即使该人在我的情况下关闭窗口或程序,它也不会在当天晚些时候运行该函数。 然而,在6月19日,如果该人打开程序并运行javascript,那么它运行该功能,因为它是新的一天,但还没有运行那天... 所以基本上,我如何使onload功能每天只工作一次? 它必须是javascript,因为我使用的程序只能通过javascript文件辅助,而不是其他任何东西。 此人必须将文件下载到他们的计算机上,那么我将如何保存和检索localStorage?

2 个答案:

答案 0 :(得分:1)

您可以使用 localStorage 来实现此目的。示例代码:

/* returns null if local storage is not defined */
var localVal = localStorage.getItem('someUniqueName'); 

if(localVal  == null){ 
    // execute the function
}else{
    var tempd = new Date();
    var str = tempd.getDay() + tempd.getMonth() + tempd.getFullYear();
    if(localVal.localeCompare(str) == -1){
        //execute function
        localStorage.setItem('someUniqueName',str);
    }
}

如果您想创建一个cookie并进行处理,那么您可以查看question

答案 1 :(得分:0)

您可以在用户的​​浏览器上创建一个cookie,该cookie一直持续到一天结束。如果您使用的是jQuery,则可以执行以下操作(取自here):

var currentDate = new Date();
expirationDate = new Date(currentDate.getFullYear(), currentDate.getMonth(), currentDate.getDate()+1, 0, 0, 0);
$.cookie("ultOS", "5", {expires: expirationDate});

如果您使用普通的javascript,那么执行此操作的方法如下(来自here):

  function createCookie(name,value,date) {
        if (date) {
            var expires = "; expires="+date.toGMTString();
        }
        else var expires = "";
        document.cookie = name+"="+value+expires+"; path=/";
    }

var today = Date();
var midnight = today.getDate()+1
midnight.setHours(0,0,0,0);
createCookie("Valid","true",midnight);

在每个页面加载开始时,只需检查此cookie的值。