ようやく反論していただけたようだ。ほぼ全て了解。
元の文章を引用しておこう:
DocumentFragment ドキュメントに修正を入れるんであれば、使わず普通にやったほうがいいと思う。 私ならビューとの分離はdisplay: none;でやる。 これは結城浩氏訳のOperaのドキュメントに書いてあった。 Firefoxでどうかは知らない。
つれづれ 2008.07.17 - mayokara noteより
これだけ。
ビューとの分離は
と書いてあるものだから、その意味でDocumentFragmentの代替としてdisplay: none;を利用すると読めてしまい、なんだEffectivejavascriptを読めてないのに何かましてんだ、と思った。しかしどうやら反論によると:
- そもそも「一回の再描画にまとめられない」場合の話をしています
- 2回より1回のほうが良いのは確かですが、あくまでそれが有効な場合の話です
- 有効でない場合の話をしています
- 言い換えれば、イベントハンドラ含むツリーを保持する必要がある場合の話をしています
らしい。それなら了解。
- extractして(1)insertしたら(2)、表示されているDOMツリーの変更は2回となるように思います
じゃあ、cloneContentsした後その文書フラグメントに対して変更を加え、replaceChildで。ともかくdisplay:noneが代替にはならないし、Operaの文書にそんなことは書いていないというのを「読めていない」と表現したに過ぎない。誤解だったらしいが。
また、たとえば10~20回の修正に対する、1回2回の違いにこだわる点を"「神経質すぎるし、本末転倒」"と書きました。
10回~20回って、たぶん何か違う話をしている。include *で使う限り何回再描画が行なわれるかは「不明」だ。10回、20回どころの話ではない。
というか神経質すぎるし、本末転倒
はそこにかかっていたの? 元の文章はこうだった:
DocumentFragmentが役に立つのは、10個も20個もappendChildするときに一旦ストックしておくとか、ナビゲーション内部の部品をあらかじめ作っておいてtdとdivのそれぞれに入れるとか、そういう場面だと思う。
bodyの中身全部消して全部追加とか神経質すぎるし、本末転倒。
つれづれ 2008.07.17 - mayokara noteより
この文章から、1回2回の違いにこだわる点を"「神経質すぎるし、本末転倒」"と書きました
を読み取れということらしい。body要素の総入れかえ自体を否定しているのかと思ったよ。まあ兎に角私が誤読したということらしい。
「反論、ちゃちゃ入れは歓迎する」"と口では言いながら、聞く耳を持たないのでは話になりません
歓迎しているが、歓迎するというのは、肯定するということではないし、必ず反応するということでもない。そして「聞く耳」というのは、何でもかんでも肯定することではない。そんな気色の悪い「聞く耳」なら、ちぎって捨ててやる。
「意見交換」とのカテゴリで「人格攻撃」を始めるようでも話になりません
そんなカテゴリはない。「意見交換、批判等」というカテゴリは作ったし、別にカテゴリなんて適当だよ。
人格攻撃うんぬんについて。そんなものをした覚えは無い。ひょっとして「クールな大人」が!? いくらなんでも「人格攻撃」の閾値が低すぎやしないか。私は「議論ごっこに興味はない」といわれて極めて「不愉快」だったが、そんな感情を露骨にウェブ上で公開するのは馬鹿馬鹿しいしダサいから時事ネタにして笑い飛ばした。それだけ。
自分は糞真面目に記事を書いているのに「議論ごっこに興味はない」と気取られて腹は立ったし、後付で色々な前提を持ち出して反論したりするのは「汚ねえ」と思ったが、そんなもんだろう。そういうのも認めるよ。引きこもられているよりマシ。そういえば昔、開口一番「あなたの反論は予想していました」といわれたときは頭にきたなあ。わらい。