イベントページに日付と時刻を表示しています。ログインしているメンバーについては、好みのタイムゾーンを取得できます。しかし、サインインしていないユーザーについては、最初にラップトップのタイムゾーンを検出し、ページをローカルのタイムゾーンで表示したいと考えています。
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 を使用した最初のリクエストの後にページをリロードしますが、これを行うより良い方法はありますか?
Extra : ページをリロードする必要がある場合。location.reload(); を追加します。jQuery呼び出しの後。リロードは、最初のリクエストが完了した後に発生します。最初のリクエストが読み込まれる前に、すぐにページをリロードする方法はありますか? そうしないと、ページが 2 回読み込まれるという奇妙な事態が発生します。