doubledepth

File読み込み処理の見直し

DataTransferItem.webkitGetAsEntry()は普通に走査したら100件が上限とか、dropEvent.dataTransfer.itemsはdrop event handlerが終了すると同時に空になるとか、今月頭に見つけた書きかけscriptに関するbugsを調べていたら初心者が踏みそうな地雷を全部踏み抜いていたことが発覚。File読み込み関数群がDomino Topplingのごとく連鎖的にああ^〜

なんとかなりそうだけどと吐き気が酷いので寝る。

日記

8秒かかる鈍重な処理も8分割して並列処理すれば1秒で終わるのでは? 気がすすまない案ばかり思いつく。Workers側の並列処理はおそらく私が狙った通りに書けた。非同期処理群をPromise.all()で束ねるところがうまく書けなかった。then()節の中に後続処理を全部つっこむだけなのに、なぜうまくいかないのかわからない。awaitしても解決されていない。カッとなってscriptを一週間前の版に差し戻した。まあこの版でも“オートメーション工場”の読み込み時間は10秒を切っているし、43万個以上のnodesのの10秒なら私にしては頑張ったほうだろう。

いまのところWeb WorkersはDOMさわれないが、innerHTMLはただの文字列なのでWorkers側で走査できる。innerHTML文字列は再帰下降構文解析器が通過する道順そのものなので、(妥当なHTMLなら)素朴なwhile loopだけで簡単にDOM walkができてしまうし、部分的な挿げ替えもできてしまう。いわゆる仮想DOMほど大仰な用途が必要でない場合は、これだけで事足りる感がある。

日記

BMS関連

拙作BMS
bubble / hitkey
二次配布BMS
ノイズの海と鯨 / moka
PARTY TIME IN MY DREAM / HAIJI
BMSE非公式ヘルプ
Lite
Lite-online
Full
Full-online
buglist
iBMSC
Web (Japanese version)
issues
BMS差分
a­nal­gam
boléro
Ketch­up
quovadis
SELF
yellows
Do not use non-ascii filenames
Brilliant Techno Square
雑多なメモ
bmsplayer data
bms benchmark
Secrets - Feeling Pomu 2nd
grid2sec
bmx2xxx
BMx Outliner
BMS command memo
BMS command memo (Japanese version)
BMS EVENT LITE
#RANDOM BMS list
BMS #OPTION command
BMS Bitmap test
Extended BPM
STOP Sequence
BMS Edge Cases
BMS extensions proposed by Sonorous (unofficial Japanese version)
BMS 2.0 (unofficial Japanese version)
BMS Editors
Do not use non-ascii filenames
BM98 Kikuchan Version 3.30 Revision #4.2
BMSON Checker
_wsh_bms2bmson.js

その他

HTML関連メモ
Dakuten on HTML
nest1000
EVS
Nervous Cascading
Source Han Sans test
User-Agent String
CSS Logical Properties