Dojo0.4.0によるドラッグアンドドロップ処理のパフォーマンス

本来Dojoのドラッグドロップフレームワークは、他のAjax系ライブラリと比べても重いということはありません。(->Dojo, YUI, script.aculo.usの例)。

なのになぜか私が書くとドラッグ時に2,3秒固まる。CPUがギガヘルツの時代にこの2,3秒という引っかかりは結構ストレスが溜まります。そこでちょっと調査してみました。→Dojo0.4.0によるドラッグドロップのパフォーマンステスト

結論から言うとドロップターゲットの数が効いてきます。10個ほどでだんだん引っかかりを感じ始め、数十個になるとCPUがPentiumM1.8GHzのPCでもストレスに感じます。ドラッグ開始時にすべてのDroppableな場所についてサイズ計算しているためです。

原因の追跡と解決編は後ほど。