これは一般に、経験を清潔に保ちながら漸進的なエンハンスメントを管理する方法ですが、どれだけ安全ですか?競合状態の可能性はありますか?これは機能しませんか?準備完了状態の前にdomを操作しても問題ありませんか?
これは私がやってしまいますどのような一般的である..あなたは、あなたがJavaScriptのサポートを持っている場合は、異なる何かを表示したい、シンプルな抽象的なシナリオを想像:
<div id="test">original</div>
<script type="text/javascript">
var t = document.getElementById('test');
t.innerHTML = 'changed';
</script>
多くは、あなたがフレームワークを使用する必要があると主張し、待つことdomreadyイベントのために、そしてそこに変更を行います。しかし、 'test'要素がドキュメントの終わりの前にすでにレンダリングされていて、CSSが準備できてdomreadyがトリガしているので、顕著なちらつき「オリジナル」の
このコードは競合状態の障害が発生する可能性がありますか?スクリプトの前に要素が存在していれば、その要素が検出可能で変更可能であることがわかりますか?
ありがとうございます。
Raegxさん、こんにちは、私は完全に理解できますが、操作が中断されました。オープニングのbodyタグの下にある可能性があります。そして、私のページの明るさにかかわらず、domreadyが発生する前にレンダリングされます。私はちょっとした経験を避けようとしていますそれは常にdomreadyでこのようなことを経験しています。 – meandmycode
暗闇の中に戻って、私たちはonDomReadyを起動するクロスブラウザの方法を持っていなかったときに、すべてのimages/css/etcが読み込まれてレンダリングされた後にonLoadを使用していました。これで、DOMが解析されて表現された後に起動されますが、潜在的に画像/ etcの前に発生するonDomReadyがあります。これは比較的新しい進歩です。 OnDomReadyを待っているのは、私たちが今の時点で持っていることと、頑強さのための最良のソリューションです。 あなたがonDomReadyの前の操作が価値があると思われ、閉じられていないノードにノードを追加/作成/移動していないと思われる場合は、おそらく問題ありません。 –
私が聞いているところではうまくいくはずですが、うまくいくはずですが、正式には要素が終了ノードの後に準備されるべきであるということは何も述べていません。 – meandmycode