我需要在15分钟后显示我的提醒消息,但如果页面刷新或我更改页面则无效。我在同一个网页上这样做。当我按下按钮时,它应该调用showPopUp()方法。我使用的是Visual.net 2005版本的asp.net。
。 。
function showPopUp(){
setTimeout(function() {alert("Warning");}, 5000);
}
function delayer(){
showPopUp();
}
。 。
答案 0 :(得分:2)
这样的事情(未经测试):
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的秒数转换为毫秒)。