看板 Ajax 關於我們 聯絡資訊
大家好,這個問題不知道應該是問Ruby還是問ajax.. 最近在學習,寫了個網頁,目的是間隔10秒回傳數據跟顯示 每隔10秒生成新數據 -> 放入DB (postgresql) -> 從DB讀取最末項顯示 目前RoR那邊的架構已經完成,要顯示在用戶端時 用了hightchart的套件 http://www.highcharts.com/demo/dynamic-update 其中的程式碼 (節錄在下面) y軸就是我要畫出的點,但我試了好幾個方法都沒辦法直接取用資料庫的資料 上網查了幾個方法,說可以用AJAX,但大多是ASP.net的(不會用= =) 也有人說RoR可以直接讀取.. $('#container').highcharts({ chart: { type: 'spline', animation: Highcharts.svg, // don't animate in old IE marginRight: 10, events: { load: function() { // set up the updating of the chart each second var series = this.series[0]; setInterval(function() { var x = (new Date()).getTime(), // current time y = <%= Mydata.last.value %>; series.addPoint([x, y], true, true); }, 10000); } } }, 我目前是這樣寫,但很明顯的,y取不到值... 有沒有甚麼方法可以成功呢? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.166.89.71
TonyQ:你要把資料先放到 client 去 再透過 JS 取值 12/03 10:24
謝謝版主,我將資料用@mydata=Mydata讀取過來之後,我將上面的黃色那行改成 y = <%= @mydata.last.value %> 可以讀取到最後的值,但10秒之後畫的點,還是同一個值 就是client端load網頁“那時”的最後一點 之後,我在網路上看到一種寫法 $.ajax({ async: false, type: "POST", url: URL, dataType: 'JSON', success: function(data) { y = JSON.parseInt(data.last.value); } }); 似乎..可以直接呼叫資料庫? 可是我不太懂也用不出來 網路上的範例都是呼叫.ashx檔案,但RoR架構好像沒有這個東西, 拜託了,卡了好久.... ※ 編輯: a83294 來自: 140.121.146.39 (12/03 12:49)
TonyQ:簡單作法,你先把那個變數的整個內容轉成 json string 12/03 12:56
TonyQ:然後放到 javascript 寫個 var data= <%=json_str%>; 12/03 12:56
TonyQ:之後再透過 data 這個 js obj 去 access. 12/03 12:57
TonyQ:進階作法就是寫 json service 從 js 去撈... 12/03 12:57
TonyQ:但如果你簡單作法都不會,進階作法只會讓你更 confuse XD 12/03 12:57
qwer820404:我最近用highchart開發了dashboard...但是用.net 12/03 22:15
qwer820404:真的再不會再私信給我吧 12/03 22:18
qwer820404:你client那邊 10秒的timer是有寫對 但是 12/03 22:20
qwer820404:你用inline code的方式寫…當然會一直讀到一樣 12/03 22:20
qwer820404:你的操控權在client,service那端要用一個service 12/03 22:21
qwer820404:說錯 server那端 你要放一個service讓ajax可以呼叫 12/03 22:21