这个让我把头发弄出来。我将以下经典ASP代码放在我的文档的头部,以获得在javascript中使用的服务器时间......并且它第一次工作。之后当javascript在javascript中调用相同的函数时,我得到的时间只有2分钟!
第一次在脑袋里面(好)
<%
Dim servertime, d
d = Now
servertime = Cstr(Right("00" & Hour(d), 2) & ":" & Right("00" & Minute(d), 2) & ":" & Right("00" & Second(d), 2)) 'parse out hh:mm:ss
%>
<script>
window.servertime = '<%=servertime%>'; // set servertime to server time duh!
</script>
稍后在javascript函数中:
<%
d = Now
servertime = Cstr(Right("00" & Hour(d), 2) & ":" & Right("00" & Minute(d), 2) & ":" & Right("00" & Second(d), 2)) 'parse out hh:mm:ss
%>
window.servertime = '<%=servertime%>'; // get the server time again!
每次第二个功能关闭2分钟!
答案 0 :(得分:1)
servertime变量是在最初渲染页面时计算的,只有在再次调用页面时才会更新。
这意味着如果您想使用当前服务器时间,可以执行以下操作:
当页面加载抓取服务器时间时,还要抓取javascript本地时间。当你想要刷新时间时,将现在和初始本地时间之间的差异添加到原始服务器时间......它不会100%准确,但它会很接近。
稍微复杂一点..在服务器上有一个页面什么都不做但只返回当前时间,当你想从javascript中显示服务器时间时进行AJAX调用(例如使用jQuery)来抓取并显示它
答案 1 :(得分:1)
愿这会有所帮助。我不确定你需要什么时间...当用户会话即将到期时,我用它在asp页面内发出2分钟的预警。
<%
advanceWarning = 2
jsTimeout = (session.timeout - advanceWarning) * 60000
%>
<script>window.setTimeout("alert('Security Message at <%=time%> (EST): You have been idle for too long on the website. For your security, your session will expire in 2 minutes and you will be automatically logged out if you continue to remain idle!');",<%=jsTimeout%>);</script>