[前][次][番号順一覧][スレッド一覧]

rails:808

From: Hiroshi Takagi <gollum@h...>
Date: Mon, 19 Dec 2005 09:49:07 +0900
Subject: [rails:808] Re: Dynamically Updating a Table w/AJAX

高木宏です。


On Mon, 19 Dec 2005 01:57:57 +0900
Yoshimikan <walf443@g...> wrote:

> よしみかんと申します。ML初投稿ですが、なにとぞよろしくお願いします。

よしみかんさん、reply ありがとうございます。

> まず動的に更新するというのは、カラムのことでしょうか?あるいはセルの中(つまりテキスト部分など)でしょうか?

カラム、セル、というより、横一行分 <tr>..</tr> の単位で、
追加・削除ができれば。

> 大雑把に概要を述べると、
> テーブルの場合でもidに規則性を持たせればよいのですから、
> 
> <table id="hoge">
> <tr>
> <td id="td0_0" onClick="foo(0, 0)"></td>
> <td id="td0_1" onClick="foo(0, 1)"></td>
> </tr>
> <tr>
> <td id="td1_0" onClick="foo(1, 0)"></td>
> ...
> </tr>
> </table>
> 
> などとHTMLを書いておいて、Javascriptの定義部分で、
> 
> foo(row, col){
> document.getElementById('td'+row+'_'+col).innerHTML = "〜";
> ...
> }
> 
> などとやってしまえば動的に変化させることが可能です。

ううむ、かなり豪腕ですね。
まあ、<td> ごとに規則性のある id を割り振るのは、
view/controller で、
collection/partial と local をうまく使えば簡単にできますが。

> 前半のHTML部分は手で書いていくのは大変なので、Javascriptで動的に生成してしまうと良いと思います。
> 
> 実際に動く奴は自分で書いたものですが、
> http://walf443.raindrop.jp/rendezvous/
> を見てみてください。

今、電車の中ゆえ IP reachable ではないので、あとでゆっくり拝見します。

> それにしても、これはRails MLで語られるべきことなのでしょうか?もしかするとAjax MLでやった方が良いかもしれません。
> 
> それとも、「RailsのJavascript Helper機能を使ってテーブルの動的生成をする方法」ということであれば、失礼いたしました。こちらは自分は分かりません。

後者です。

わたしは、Javascript は皆目わかりません。
HTML ですら、えーかげんなもんです。
Rails のhelper 機能を使うと、中身が blackbox のまま、
便利なJavascript を使えるので重宝してます。
<ul>, <ol> なら、id をつけてupdate を指定するだけで、
リストのbotoom, top への挿入も楽なもので、
<table> に対しても同じようにできないかなぁ、と。

> とはいえ、
> - セルやカラムの数の動的変化
> - 各列ごとのソートやフィルタリング(Excelのオートフィルタみたいなやつ
> などこの話題は興味深いので識者の方に聞いてみたい気がします。

このあたりは、controller / view の書き方でかなり柔軟に対応できませす。
日本的に「きれい」なものでないのであれば ;-P
もちろん、Ajax をつかわなければ画面全体の再描画がはいりますが。

> これらに関しては毎回テーブルの中身を再描画しまくるというのしか自分には思い浮かびません。

わたしも非AJAX 版では、毎回、画面を再描画しています。
今のところ、オペレータのおねえさんからは、
応答速度についてクレームはないんですが、
伝票型の画面をぱんぱん入力しだすと、
(上に伝票のヘッダ、下に明細行、その下に明細一行の入力フォーム)
一行追加するたびに再描画していると、
応答速度よりも、目がちらついてかわいそうだなぁ、と。

画面の部分的更新というテーマは、Ajax にはぴったりなので、
なんとかしてみたいと考えています。

-- 
Hiroshi Takagi <gollum@h...>



--
ML: rails@r...
使い方: http://QuickML.com/
Web Site: http://wiki.fdiary.net/rails/
ML Archives: http://www.fdiary.net/ml/rails/

[前][次][番号順一覧][スレッド一覧]

       801 2005-12-18 15:36 [gollum@h...         ] Dynamically Updating a Table w/AJAX     
       802 2005-12-18 16:46 ┣[moriq@m...          ]                                       
       810 2005-12-19 15:07 ┃┗[gollum@h...         ]                                     
       803 2005-12-18 17:57 ┣[walf443@g...        ]                                       
->     808 2005-12-19 01:49 ┃┗[gollum@h...         ]                                     
       804 2005-12-18 18:27 ┣[toykyo@t...         ]                                       
       807 2005-12-19 01:49 ┃┣[gollum@h...         ]                                     
       817 2005-12-21 02:03 ┃┗[moriq@m...          ]                                     
       805 2005-12-19 00:27 ┣[xml@t...            ]                                       
       812 2005-12-19 15:22 ┃┗[gollum@h...         ]                                     
       813 2005-12-19 22:14 ┃ ┗[xml@t...            ]                                   
       816 2005-12-21 01:50 ┃  ┗[gollum@h...         ]                                 
       815 2005-12-21 00:53 ┗[moriq@m...          ]                                       
       818 2005-12-21 02:31  ┗[gollum@h...         ]                                     
       850 2006-01-04 09:01   ┗[yoshi@o...          ]                                   
       851 2006-01-04 15:06    ┗[moriq@m...          ]                                 
       852 2006-01-04 15:56     ┗[moriq@m...          ]                               
       859 2006-01-06 05:14      ┗[yoshi@o...          ]