我有一个简单的 Rails 应用程序,可以在用户到达站点时对用户进行地理定位(此代码位于我的 application.html.erb 文件的 head 标记中):
<script>
var x=document.getElementById("demo");
function getLocation()
{
if (navigator.geolocation)
{
navigator.geolocation.getCurrentPosition(showPosition);
}
else{x.innerHTML="Geolocation is not supported by this browser.";}
}
function showPosition(position)
{
var lat = position.coords.latitude;
var log = position.coords.longitude;
document.cookie = "cl=" + lat + "&" + log + ";";
}
getLocation()
</script>
<p id="demo"></p>
坐标被保存为 cookie。基于这些坐标,它们用于从我的控制器中的数据库中检索一组特定的数据。然后这些结果会显示在视图中。
当前,当用户第一次到达站点时,页面是空白的,当页面刷新时,位置信息会通过控制器并显示相应的数据。
我要做的是在初始页面加载时完成地理定位和控制器操作,以便在用户首次到达站点时显示数据。或者更简单地说:
- 获取用户位置坐标
- 将坐标传递给控制器并检索数据
- 然后在视图中显示数据
我认为我的问题的根源是 javascript 和控制器事件的顺序,但我不知道如何解决这个问题。