Dojo0.4.0によるドラッグアンドドロップ処理のパフォーマンス
本来Dojoのドラッグドロップフレームワークは、他のAjax系ライブラリと比べても重いということはありません。(->Dojo, YUI, script.aculo.usの例)。
なのになぜか私が書くとドラッグ時に2,3秒固まる。CPUがギガヘルツの時代にこの2,3秒という引っかかりは結構ストレスが溜まります。そこでちょっと調査してみました。→Dojo0.4.0によるドラッグドロップのパフォーマンステスト
結論から言うとドロップターゲットの数が効いてきます。10個ほどでだんだん引っかかりを感じ始め、数十個になるとCPUがPentiumM1.8GHzのPCでもストレスに感じます。ドラッグ開始時にすべてのDroppableな場所についてサイズ計算しているためです。
原因の追跡と解決編は後ほど。
うれしさも中くらいなり
1週間〜10日ほどで工事可能とゆーセールストークを信じて既存のCATVによる回線を解約してしまったものの、実際は3週間弱かかって今までネット接続無しで過ごしてみました。意外と禁断症状出ないもんだ。まあ会社近いしな。(え、野良?なにそr)
回線はNTT東(Bフレ)でプロバイダはGyaO光、マンションタイプでVDSL方式というあんまり高速は期待できないパターンだけどとりあえず計測。
------ BNRスピードテスト (ダウンロード速度) ------ 測定サイト: http://www.musen-lan.com/speed/ Ver3.5001 測定日時: 2006/11/16 09:41:17 回線/ISP/地域:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
SPEED 2.5 (speed.rbbtoday.com) 計測日時 : 2006年11月16日木曜日 09時40分57秒 下り(ISP→PC): 41.55Mbps 上り(PC→ISP): 20.83Mbps
んーまあこんなものでしょうか。(rbbtodayではやけに高速に出るのが気になるけども。。。)
時間帯を変えて計測したところ、調子いい時間帯ではが下り40〜45Mbps位、上り10Mbps位、調子悪いときは下り20Mbps程度、上りは1〜2Mbpsまで落ち込んでしまう模様。平均するとD 30Mbps, U 5Mbps位かな。
マンションVDSLタイプではいたって普通というか、まあまあという品質であると。
今日の衝撃
IE(6sp2と7RC1で確認)では以下の単純なコードがうまくいかない。DOMは正しく挿入されているのに主要なブロックのサイズが全部0になってしまい表示されないのだ。
<script type="text/javascript"> function addTable() { var table = document.createElement('table'); var tr = document.createElement('tr'); var td = document.createElement('td'); td.appendChild(document.createTextNode('hogehoge')); tr.appendChild(td); table.appendChild(tr); document.getElementById('container1').appendChild(table); } </script> <body onload="addTable()"> <div id="container1"></div> </body>
同等のHTML片をinnerHTMLに代入すればちゃんと表示される。
ググッたら答えを発見。IEではDOMでappendChildするときはtbodyも省略せず構築しないと表示されない、らしい。。。
こういう本質的でない一つ一つの障害にめげずにトライし続ける根気こそ、DHTML開発に必要なものといえよう。
私はめげたので今日は早く帰ります。
Dojo 0.4.0 リリース
トップにはまだ。
ベースを0.4.0に入れ替えてあっさり動いた!と喜んだらキャッシュが効いていただけの罠。
頼むからもうちょっと詳しく書いてくれというリリースノート(http://dojo.jot.com/WikiHome/Release0Point4)。今回の目玉はgfxでしょうかね。
W-Zero3 [es]がハングした
理由がよく分からない(特に大量にアプリを立ち上げていたわけでもなく)フリーズ。しかもソフトリセット*1が効かない!
電池の蓋をあければハードウェアリセットできるらしいが、そもそも電池はどこに?って悩んだのでここにメモしておく。裏側のintel insideロゴがある領域が実は電池カバーで、SHARPロゴの入った銀色の帯をぐっと押しintelロゴの方向にスライドさせるとふたがあく。結構力が要るのでビビる。
電池カバーを外し穴をスタイラスでつつき、ハードウェアリセット。そしたら何事もなく起動した。よかったよかった。
巷では結構復帰しない症例が報告されている模様。ガクガクブルブル。
*1:キーボード横に付いてる穴をつつくアレ。