我有活动页面显示日期和时间。对于已登录的会员,我可以获取他们喜欢的时区。但是对于那些没有登录的用户,我想先检测他们的笔记本电脑时区,并在他们的本地时区显示页面。
我在 application.html.erb 中使用 jquery:
<% if session[:time_zone].blank? %>
<script type="text/javascript">
jQuery.ajax({
data: {user_time_zone: $().get_timezone()},
type: 'post',
url: "/set_time_zone_session"
})
</script>
问题:它最后运行 jQuery,所以第一次,页面显示默认时区。刷新页面后,所有子序列请求时区都设置正确。此外,在第一次使用 javascript 请求后重新加载页面,有没有更好的方法来做到这一点?
额外:如果我必须重新加载页面。我添加 location.reload(); 在 jQuery 调用之后。重新加载发生在第一次请求完成后。有没有办法在第一个请求加载之前立即重新加载页面?否则,页面加载两次会很奇怪。