「例の件」について反論、ちゃちゃ入れは歓迎する。ユーザスクリプト歴何年かとか肩書きとかは問わないし、反応するかどうかはこっち次第だけど。「例の件」は散文的変数。
ドキュメントに修正を入れるんであれば、使わず普通にやったほうがいいと思う。
私ならビューとの分離は
display: none;
でやる。これは結城浩氏訳のOperaのドキュメントに書いてあった。
EfficientJavaScript - Dev.Opera - 効率的な JavaScriptを読めていないな。複数の変更を要素やその中味に行うなら, そしてこの変更を一回の再描画にまとめられないなら,
と但し書きしてあるとおり、displayプロパティの変更で一度は隠したとき, もう一度は再表示したとき
に再フローが二回起こる。二回と一回なら、一回のほうがいい。
DocumentFragmentが役に立つのは、10個も20個もappendChildするときに一旦ストックしておくとか、ナビゲーション内部の部品をあらかじめ作っておいてtdとdivのそれぞれに入れるとか、そういう場面だと思う。
bodyの中身全部消して全部追加とか神経質すぎるし、本末転倒。
単純化のためbodyの中身を総入れ替えする例は挙げたが、某氏含め、やたらそこに拘るのは何なんだろう。文書ツリーを多数回変更するときはDocument Fragmentを経由するの後半で、「実際には(中略)部品化して使う」って書いてあるじゃねーかよ。まあ自作のGoogle応用とかクックパッド応用(非公開)では実際にbody総入れ替え的な手法を使っているけど、別に神経質でやっているわけではない。きっちり理由があってやっている。特に本末転倒にもなっていないなあ。意味がよくわからん。別に拘らないけど。
Google検索結果をリキッドマルチカラムで一望し、次の検索結果を先行読み込みして高速に表示し、かつ履歴で戻れるGreasemonkeyスクリプト (agenda)は「AutoPagerizeと相性悪い」がゆえにスクロール嫌いなjintrick専用のAjaxアプリケーションだけれども、1) コンテンツの構造を全書き換えし、かつ 2) 専用のインターフェイスを作るのに、元の文書の「修正」なんて馬鹿げた手法は使っていられない。全部書き換えたほうが速いしメンテしやすい。