我需要在 15 分钟后显示我的警报消息,但如果页面刷新或我更改页面,它就不起作用。我在同一个网页上这样做。当我按下一个按钮时,它应该调用该showPopUp()
方法。我正在使用带有 Visual Studios 2005 版本的 asp.net。
function showPopUp(){
setTimeout(function() {alert("Warning");}, 5000);
}
function delayer(){
showPopUp();
}
我需要在 15 分钟后显示我的警报消息,但如果页面刷新或我更改页面,它就不起作用。我在同一个网页上这样做。当我按下一个按钮时,它应该调用该showPopUp()
方法。我正在使用带有 Visual Studios 2005 版本的 asp.net。
function showPopUp(){
setTimeout(function() {alert("Warning");}, 5000);
}
function delayer(){
showPopUp();
}
所以像这样(未经测试):
var waitTime = 900000; // 15 minutes
var executionTime;
var initialTime = localStorage.getItem("initialTime");
if (initialTime === null) {
localStorage.setItem("initialTime", (new Date()).getTime());
executionTime = waitTime;
}
else {
executionTime = parseInt(initialTime, 10) + waitTime - (new Date()).getTime();
if (executionTime < 0) executionTime = 0;
}
setTimeout(function() {
alert("Warning");
// reset the timeout to start from waitTime on page reload
localStorage.removeItem("initialTime");
}, executionTime);
编辑:
如果您不想使用 localStorage,可以将其存储在 asp.net 会话变量中,如下所示:
Session["InitialTime"] = (DateTime.UtcNow - New DateTime(1970, 1, 1, 0, 0, 0)).TotalSeconds;
然后对上面的 javascript 代码执行类似的逻辑,并将结果作为 setTimeout 函数中的第二个参数输出(但请记住将 setTimeout 的秒数转换为毫秒数)。