Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 警报消息后继续循环_Javascript_Jquery - Fatal编程技术网

Javascript 警报消息后继续循环

Javascript 警报消息后继续循环,javascript,jquery,Javascript,Jquery,下面是用于检查我的页面会话的函数。单击警报消息后,页面将重新加载 var timeleft = 60; function checkTime() { timeLeft--; if (timeLeft == 30 ) { alert("30 secs left."); window.location.reload(); } } 是否仍然存在timeleft continue减号(如果用户没有注意到警报消息),以便在timel

下面是用于检查我的页面会话的函数。单击警报消息后,页面将重新加载

var timeleft = 60;

function checkTime() {
    timeLeft--;

    if (timeLeft == 30 ) 
    {
        alert("30 secs left.");
        window.location.reload();
    }

}

是否仍然存在timeleft continue减号(如果用户没有注意到警报消息),以便在timeleft=0时重定向到注销页面。

您的代码注释很奇怪 首先你使用的是一个数字(60),你认为它是(2分钟),然后警告它是(30秒剩下)…< /P> 无论如何。。 你想倒计时,当只剩下30秒时,你想重新加载页面

这里的问题是,当您重新加载页面时,您将从(代码中的60)重置倒计时

解决方案如下所示: 1-将@Fabrizio指出的倒计时保存在localstorage中,当页面再次重新加载时,使用保存的倒计时值。 但是,此解决方案假定用户浏览器可以保存到本地存储

2-第二种解决方案是你发布带有倒计时的页面,然后重新加载带有倒计时的页面。。 假设您的页面地址是:www.myexampleaddress.com/mypage 然后按如下方式调用地址:www.myexampleaddress.com/mypage?timeleft=30

并在服务器上捕获此信息,然后从服务器重新加载页面,并在查询字符串中添加值

所以警报后你的密码应该是这样的

var myURL = location.href+'?timeleft=30';
location.href =myURL;

我希望帮助:)

您的代码注释很奇怪 首先你使用的是一个数字(60),你认为它是(2分钟),然后警告它是(30秒剩下)…< /P> 无论如何。。 你想倒计时,当只剩下30秒时,你想重新加载页面

这里的问题是,当您重新加载页面时,您将从(代码中的60)重置倒计时

解决方案如下所示: 1-将@Fabrizio指出的倒计时保存在localstorage中,当页面再次重新加载时,使用保存的倒计时值。 但是,此解决方案假定用户浏览器可以保存到本地存储

2-第二种解决方案是你发布带有倒计时的页面,然后重新加载带有倒计时的页面。。 假设您的页面地址是:www.myexampleaddress.com/mypage 然后按如下方式调用地址:www.myexampleaddress.com/mypage?timeleft=30

并在服务器上捕获此信息,然后从服务器重新加载页面,并在查询字符串中添加值

所以警报后你的密码应该是这样的

var myURL = location.href+'?timeleft=30';
location.href =myURL;
我希望帮助:)

alert()
是一种模式,它会停止javascript执行。检查此代码:

var start = new Date();
var start2;
window.setTimeout(function() {
    var end = new Date();
    var result = "time from start: " + (end.getTime() - start.getTime())
    result += "\ntime from alert: " + (end.getTime() - start2.getTime())
    result += "\nalert was open for: " + (start2.getTime() - start.getTime())
    alert(result);
}, 500);
window.setTimeout(function() {
    alert("hello");
    start2 = new Date();
}, 100);
小提琴为上层代码:

查看此代码,它显示即使setTimeout在
alert()
期间也会停止,但您可以检查用户查看警报的时间,并通过减少您的计时器延迟所测量的时间来更新计数器(
timeLeft

解决方案:因此,我的解决方案是测量用户查看警报模式的时间,每当他单击“确定”时,检查会话是否结束,如果是,重定向到注销,否则执行通常的重定向

var start = new Date();
alert("xxx");
var t = (new Date()).getDate() - start.getDate();
if (t / 1000 > timeLeft) {
    /* logout */
} else {
    /* redirect */
}
注意:另一个解决方案是使用一些html弹出窗口而不是javascript警报,它不会阻止javascript执行

alert()
是一种模式,它会停止javascript执行。检查此代码:

var start = new Date();
var start2;
window.setTimeout(function() {
    var end = new Date();
    var result = "time from start: " + (end.getTime() - start.getTime())
    result += "\ntime from alert: " + (end.getTime() - start2.getTime())
    result += "\nalert was open for: " + (start2.getTime() - start.getTime())
    alert(result);
}, 500);
window.setTimeout(function() {
    alert("hello");
    start2 = new Date();
}, 100);
小提琴为上层代码:

查看此代码,它显示即使setTimeout在
alert()
期间也会停止,但您可以检查用户查看警报的时间,并通过减少您的计时器延迟所测量的时间来更新计数器(
timeLeft

解决方案:因此,我的解决方案是测量用户查看警报模式的时间,每当他单击“确定”时,检查会话是否结束,如果是,重定向到注销,否则执行通常的重定向

var start = new Date();
alert("xxx");
var t = (new Date()).getDate() - start.getDate();
if (t / 1000 > timeLeft) {
    /* logout */
} else {
    /* redirect */
}

注意:另一个解决方案是使用一些html弹出窗口而不是javascript警报,这不会阻止javascript执行

如果您想要异步警报,可以尝试以下方法

setTimeout(function() { alert('30 secs left'); }, 1);
但是,如果您想要定时注销,您可以这样做:

function checkTime() {
    setInterval(function(){alert("30 secs left.")},30000); // shown at 30 seconds
    setInterval(function(){logout()},60000); // called at 60 seconds
}

function logout() {
    // logout functionality
}

如果需要异步警报,可以尝试以下方法

setTimeout(function() { alert('30 secs left'); }, 1);
但是,如果您想要定时注销,您可以这样做:

function checkTime() {
    setInterval(function(){alert("30 secs left.")},30000); // shown at 30 seconds
    setInterval(function(){logout()},60000); // called at 60 seconds
}

function logout() {
    // logout functionality
}

setTimeout(checkTime,1000)
?在重新加载()之前将timeLeft保存在本地存储中,然后从那里加载它以代替第一次分配请澄清您的问题??它是否在重新加载后捕获(timeleft)??或者您正面临警报消息问题??你的问题在某种程度上是模棱两可的:)对不起。我的问题是,一个会话有60秒,当它达到30秒时,无论用户是否想要刷新它,都会弹出警报消息。我的情况是,如果用户不在计算机上,会话将一直运行,直到会话结束并重定向到注销页面。
setTimeout(checkTime,1000)
?在重新加载()之前将timeLeft保存在本地存储中,然后从那里加载它以代替第一次分配。请澄清您的问题??它是否在重新加载后捕获(timeleft)??或者您正面临警报消息问题??你的问题在某种程度上是模棱两可的:)对不起。我的问题是,一个会话有60秒,当它达到30秒时,无论用户是否想要刷新它,都会弹出警报消息。我的情况是,如果用户不在计算机上,会话将一直运行,直到会话结束并重定向到注销页面。我认为他误解了他的问题:他想重新加载页面,同时将计数器保持在重新加载之前达到的值!!不,我想我没有误解,他希望用户注销,即使用户没有注意到/单击警报。不管警报是模态的,或者用户注意到或没有注意到警报消息。。在他的代码中,页面将在警报后重新加载;那么,时间的尽头将是永恒的