JavaScript : 似非sleep処理(タイマー処理)

JQueryで実装をしていて、気になったのでメモ。

$('#content').hide()
$('#content').html = value;
$('#content').show();

というコードを書くと、hideのエフェクト処理の途中にhtmlコードを代入してしまうから
変更後のコードが、消える前に表示されてしまうという、情けない事に。

ということで、sleepないの?って思って調べたら、ありませんでした。
threadっていう概念ないの?って思って調べたら、なさそうでした。

どうすれば・・・?

と思って色々調べたら、タイマ関数は標準で持っているらしい。
使い方は簡単。

$('#content').hide()
timer = setTimeout(function(){
$('#content').html = value;
$('#content').show();
}, 500);

と書くと、500ミリ秒後に関数が呼ばれます。
これはなかなか良い感じ。
一度設定したタイマを停止させたい時には
setTimeoutが返す変数を保存しておいて

clearTimeout(timer);

という感じでclearTimeoutを呼び出す。
他にも、一定間隔ごとに処理をする関数もあるみたい。

setInterval()

これも停止のさせ方は同じ。
なかなか色々あるもんだ?

integra : Suggest 機能も付けるよ

さて、今作ってるアプリに Suggest 機能も付ける事にしました。
クリエイティブコモンズライセンスで良いライブラリが在ったのでそれを拝借。
http://www.enjoyxstudy.com/
素晴らしいライブラリをオープンソースで提供してくださっている事に感謝です。
かなり使いやすいです。それに、中々高速に動いてくれます。
ライセンスにあるように、最初の表記の部分だけ残して後はコンプレスしました。
3KB位しか変わらなかったけれど・・・大きいよね?w
フォーム + Ajax 使うページだと必ずロードするんだし〜
今のところ、Ajax で拾ってきたリストをこいつに読み込ませて、フォーム内で候補出しているんだけれど、いい感じに動いております。
で、こいつを実装していて思ったのが、そろそろスタイルシートきちんと書こうよ。って事です。はい。
色がなぁ〜 integra ってだけあって、白基調?でも、俺のインテグラはミラノレッド・・・w
職場に HTML と CSS の神がいるから、デモとかしたときにださい!!だめ!!とか言われるとショックだよねw
前に開発部で作ったツールをその人使っていなかったみたいなんだけれど、理由はダサいから。だったみたいw
いいよね〜 自分のスタイルがはっきりしていて。
そいえば、 Django は、JSF 実装の Teeda と違って、Ajax 用コンポーネントとかはないので、自分で勝手に XML 生成して、出力してるだけ。認証とかはそのまま使えるから別に良いんだけれどね。
問題は、CSRF 対策している時は、POST で Ajax は使えないので、GET を使うくらいかな。
まあ、JQuery 使えばそんなのどっちでも同じ訳だし、むしろ GET の方がパラメータ直接いじりやすくてテストしやすいんだよね。
POST だろうと、GET だろうと、この場合セキュリティーには関係ないし。
送るデータが機密になる場合は、POST にて、HTTPS を使うのが良いんだろうけれど、そんなの Ajax でやるなや。って思うので、別に困る事もないね〜

integra : JavaScript Library は JQuery にしようかな。

この間の会社での勉強会でちろっと拝見した程度だけれど、JQuery が中々良さそうな感じがした。
JavaScritp のコードが嫌いな自分に取っては、こういうライブラリの吟味は欠かせない(・・
という訳で、どうせ新しい事色々やるんだし、JQuery で実装しようかな。と思う。
Ajax 用の API はそれ程使い易い訳じゃない。という話だったけれど、ブラウザの互換性を気にしながら実装する部分が少なくなるのは大きい。
DOM 用の API は使い易いという話だったり、良いかも(・・
ブラウザ毎に DOM API が微妙に違うのに、もういらいらするんだよねw
気をつけないといけないところは、JavaScript(JS) 使うのはいいんだけれど、JS をオンにしていないと動かないユーザーインターフェイス(UI)ってどうよ?ってところ。
昨日のランチミーティングでも話しになったんだけれど、Ajax を使うと確かに便利だけれど、JS オフにしたら動かないユーザーインターフェイスはありえない。っていう話になった。
確かに!!検索したいのに、JS オフだと検索できないよ!!とか厳しいね。
JS オンなら便利になるけれど、オフでも使えるよ。っていうのが、やっぱりベストじゃないだろうか。と自分も思う。
この辺りは、何が正しい。とかいうのはないので、作る人のセンスだったりするんだろうね。
という訳で、自分が作るときはそういうところに気をつけて作ろうかな。と思う。