我的网页包含大量动态内容,只能在服务器时间内加载一次。
用户在网页上停留很长时间,做很多时间依赖的活动。 这些活动我需要使用服务器的日期时间(时间)登录浏览器 localstorage 。
那么如何在不向服务器发出新请求的情况下,从相对客户端时间计算或查找或获取服务器时间。
任何建议表示赞赏并提前致谢!
答案 0 :(得分:1)
我使用以下方法从客户端时间获取服务器时间
第一次加载页面时,请考虑客户端时间和服务器时间的差异。
var TIMEDIFF = new Date().getTime()-parseInt('<%= Time.now.to_i%>')*1000;
稍后执行以下操作以获取服务器时间,而无需从客户端时间向服务器发出请求。
new Date().getTime()-TIMEDIFF
答案 1 :(得分:0)
这绝对不可能。如果客户端发生了某些事情,并且您没有向服务器发出请求,则服务器无法知道它。
但是,如果您只是意味着您不希望重新加载页面,则可以使用AJAX向服务器发送异步(后台)请求,而无需用户知道。
答案 2 :(得分:0)
您可以从Time.now
或Time.new
获取当前时间。时间对象组件可以在客户端Javascript上使用,以节省客户端系统上的时间。
#!/usr/bin/ruby -w
time = Time.new
# time = Time.now # => Also can be used
puts time.strftime("%Y,%m,%d,%H,%M,%S,%2N") # => "2014,03,06,02,41,29,85"
在JS中,日期对象可以用不同的方式初始化,例如:
new Date(milliseconds) //milliseconds since 1970/01/01
new Date(dateString)
new Date(year, month, day, hours, minutes, seconds, milliseconds)
这里可以使用第三种方法。在rails模板文件中使用以下代码。
var currentDate = new Date(<%= Time.now.strftime('%Y,%m,%d,%H,%M,%S,%2N') %>);
alert(currentDate.toString());