Grailsアプリにグラフを表示するためのボタンがあるページXがあります。ドメインオブジェクトのIDを使用してコントローラーを呼び出し、グラフは別のページにレンダリングされます。ここまで、すべてが私には明らかです。
ただし、レンダリングされたグラフページを20秒ごとに再読み込みする必要があります。私のウェブサイトは、管理者ユーザーがほとんどいないプライベートなウェブサイトです。そこで、単純なjavascriptポーリングを使用して更新を行うことにしました。gsp
これは、 20秒ごとにリロードしたいチャートページのスニペットです。たぶんjavascriptを使用してsetInterval
います。
<g:render id="chart" template="/building/${chartTemplate}" model="${model}"></g:render>
私のコントローラーでは、チャートを作成するときにセンサーIDを渡す必要がありますが、Javaスクリプトを使用してそれを行うことはできますか?もしそうなら、最初にここにリダイレクトしたコントローラーからjavascript関数にそれを取得するにはどうすればよいですか?
これは、チャートをレンダリングする私のGSPテンプレートです。
<div id="linechart"></div>
<gvisualization:lineCoreChart dynamicLoading="${true}" elementId="linechart" title="${title}"
width="${750}" height="${450}" columns="${columns}" data="${data}"/>
私が使用したいくつかの奇妙なJavaScriptですが、機能していません。
<input type="text" id="sensorid" disabled="disabled" value="${sid }"/>
<g:javascript>
var int=self.setInterval("chart()",1000);
var sensid;
function chart(){
var d=new Date();
var t=d.toLocaleTimeString();
sensid = document.getElementById("sensorid").value;
}
${remoteFunction(controller:"building", action:"createChart", params:"'sid=' + sensid")}
</g:javascript>
javascriptがページをリロードできる方法はありますか?フルページのリロードも問題ありません。私はjavascriptの知識がほとんどないので、どんな助けでも大歓迎です。