2013-10-30 49 views
1

我有一個簡單的Rails應用程序,geolocates抵達時的用戶到該網站(該代碼位於我application.html.erb文件的頭標記):運行JavaScript和控制器操作頁面之前呈現

<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。根據這些座標,它們用於從控制器中的數據庫中檢索特定的一組數據。這些結果然後顯示在視圖中。

當前用戶第一次到達該站點時頁面爲空白,當頁面刷新時,位置信息通過控制器並顯示相應的數據。

我想要做的是在初始頁面加載時完成地理位置和控制器操作,因此數據會在用戶第一次到達站點時顯示。或者更簡單地說:

  1. 獲取用戶所在位置的座標
  2. 通行證座標控制器和檢索數據
  3. 然後在視圖

我想顯示的數據我的問題的根源是訂貨的JavaScript和控制器事件,但我不知道如何解決這個問題。

回答

1

由於JavaScript在瀏覽器中運行,並且頁面呈現在服務器端,因此您需要重新加載整個頁面或在showPosition中執行一些AJAX更新。否則,座標將始終落後一步:如果移動到另一個位置,cookie中的座標將來自最後一個位置,而不是當前位置。

相關問題