TRもdisplay:noneで消えるのか・・・

  • 2008/05/14(水) 22:58:16

行の追加削除ではなく、特定条件である行を表示を切り替えたかったんで、とりあえず追加削除を応用して、非表示のときは隠しテーブルに追加して表示行を削除、表示したいときは隠しテーブルからコピーしてから隠しのほうを削除っていうように作っていたのだが、ふとTRのstyleにdisplay:noneやったらどうなるんだろうと思ってやってみたら、見事に消えた!

消したいTRのidに*****を設定して、これだけ。
document.getElementById('*****').style.display='none';

かなりショック・・・相当時間を無駄にしてしまった・・・

ただ、隠す場合はnoneを設定するだけだからよしだけど、表示させる場合がちょっとやっかい。
テーブル行要素なので、table-rowでいいのかと思ったら、IEではTable関連の値は使えない。
といってblockやinlineにすると、IEでは行で表示されるのだが、FireFoxでは見事に行ではない表示になる。

デフォルトの値が行表示ということだろうからもしや・・・と空文字をstyleに設定したら、IEも火狐もバッチリ行が表示された。

document.getElementById('*****').style.display='';

Safariでも一応動いた。Operaはしらねw

行単位の表示切替はかなり使えそうな気がする。
さらに使いやすいツールになるようにいろいろ考えてみよう。

tableへの行追加・削除

  • 2007/10/29(月) 16:32:00

TRPGツールではとにかく表を使う。
行数などが固定の項目はいいが、装備やスキルなど必要項目数が増減するものについては、頭を悩ませていた。

複数行入力でごまかしているツールもあるけど、理想は自由な行の追加削除。
appendChildとremoveChildを駆使してやるしかないのだろうか・・・
と思ってたら、めちゃ簡単にできたのだった。

row = obj_table.REPLACERow(index)

でindex行にrowオブジェクトが生成されて、あとはrowにappendChildでセルの内容を追加。
削除はもっと簡単で、

obj_table.deleteRow(index)

これだけ。
なにを億劫になっていたのか・・・無知は罪だな、まったく。

ajax 送信データの"&"でちょっと苦労

  • 2007/04/12(木) 14:30:40

XMLHttpRequestオブジェクトのsendメソッドでPOSTデータを送るわけだが、データ内に「&」が含まれていた時の扱いでちょっとつまづいた。
どこかのページで自動的に変換されるからescapeしなくていいとかあったからそのままやってたけど、「&」はデータ区切りになるからそれ以降がちゃんと受信側で取得できない。
そりゃそうだと、送信jsでescapeかましたけど、今度は受信側PHPでデコードがうまく行かない。
いろいろやって、

・送信前にencodeURIComponentでエスケープ
・setRequestHeader('Content-Type' , 'application/x-www-form-urlencoded; charset=UTF-8'); とヘッダにUTF-8を明記
・受信側PHPでは特になにもしない

でうまくいった。
フォームの送信ボタンはいろんなことやってんだなぁ。

連想配列はオブジェクト

  • 2007/03/12(月) 01:13:08

http://d.hatena.ne.jp/amachang/20070202/1170386546

何かがものすごくすっきりした。

javascriptの高速化

  • 2007/02/25(日) 07:17:15

http://la.ma.la/blog/diary_200507070648.htm
http://www.quirksmode.org/dom/innerhtml.html#t14

表示結果は同じでも、ここまで変わるものなのか。
Javascriptの怖さを知ったぜ。

http://d.hatena.ne.jp/amachang/20060417/1145236908

ここのpptファイルは高速化への戦いが記され、実践的で面白い。
出来るだけ関数減らした方がよさげだな。

javascript開発支援

  • 2007/01/28(日) 01:40:07

あるSEのつぶやき: Ajax開発支援ツールまとめ
Aptana: The Web IDE
Adobe Labs - JSEclipse

べたのエディタで書いてるのがバカらしいな。

gzipがすんなりいかない

  • 2007/01/28(日) 01:26:36

手元にあるLhazで圧縮して試したけど、IE6ではうまく行かなかった。火狐では一発でできたんだけどなぁ。
.js.gz でやったから、やっぱ拡張子を変に見てくれてるのか。

それでも50kが10kになったのはかなりの魅力。

コードの圧縮だけでもいいけど、せっかくだからhtaccess使ってできるか試してみるか。

続きを読む

javascript圧縮あれこれ

  • 2007/01/28(日) 01:13:54

gzipのファイル圧縮でなく、コードそのものを圧縮するものがいっぱい。しかも読みにくくもしてくれて一石二鳥。

javascript 圧縮 - Google 検索
JavaScript圧縮&難読化ツールまとめ:phpspot開発日誌
Collection & Copy - JavaScriptの圧縮、曖昧化、難読化
/packer/ (オンラインでOK)
Agile Ajax: Five Javascript Compressors Compared (英語)
JSMIN, The JavaScript Minifier (英語)(単に空白改行等を削除するだけ?)
PHPでJavaScriptのコードを分かりにくくする:phpspot開発日誌(単に空白改行等を削除するだけ?)
JavaScript難読化「専用ソフトを使用する」

試しに/packer/で50k以上あるTRPGツールのコードを圧縮したら30kを切った。これにgzipかましたら・・・

しかし、圧縮に労力をかけすぎるのは本末転倒。
作業量と圧縮率と自分の好みのバランスを早く見つけよう。

prototype.jsを10kbに

  • 2007/01/27(土) 16:04:31

prototype.jsを10KBにする方法 : 亜細亜ノ蛾 - Weblog
X-WORKS.org - gzip 圧縮で転送してみる
こぶたのラッパ : 世界の片隅で.jgzと言ってみる

なるほど、その手があったか。

Ajaxも簡単だった・・・

  • 2007/01/19(金) 11:27:58

むぅ、完全に食わず嫌いなだけだったな。
イメージはつかめた。
後は何が出来て出来ないか。