3

javascript DOM メソッドを HTML ページの下部 (<body> の後) に配置することは、jQuery の「ready」イベントを使用するよりもはるかに高速であるため、次のようにして強制するべきではありません。

$('document').trigger('ready');

...ボディタグの後?私は実際にこれを試したことはありませんが、スピードアップするはずです。それとも私は何かを逃しましたか?

4

3 に答える 3

6

jQuery.ready();

于 2009-11-18T12:52:07.410 に答える
1

このreadyイベントは、ドキュメントが解析され、DOM を操作できるようになったことを意味します。これは、ブラウザーが解析を完了したときに発生するものであり、これより早く実行することはできません。

そのようなことがどのように機能すると思いますか?ブラウザの HTML パーサーの魔法のスイッチを入れて、通常よりも高速に実行できるでしょうか? コンピューターのプロセッサの実行速度が速くなるので、ブラウザはドキュメントの解析をより早く完了できますか?

とにかく、ブラウザがドキュメントをより速く解析するように強制することはできません。jQueryでもありません;-)

于 2009-11-13T16:23:17.697 に答える
0

密接に関連する質問がありました.SOに投稿する直前に、自分で答えを見つけることになりました。私の質問を持っている人はおそらくここにたどり着くでしょう(「jquery force document ready」のナンバーワンのグーグル結果)ので、追加情報を提供させてください。

私の問題は、後で保存することもある HTML を (XSLT を使用して) 動的に生成していることですが、ユーザーがプレビューできるように、新しい HTML で新しいウィンドウを開きたい場合もあります。そのようです:

var html = UseXSLTToGenerateSomeHTML();
var myWindow = window.open('', '', 'width=805,height=493');
myWindow.document.write(html);
myWindow.focus();

問題は、生成された HTML が jQuery を使用し、domready イベントが呼び出されないことです。デビッドの答えからそれを行う方法はすぐに明らかだったはずですが、微調整は一瞬私を逃れました。それは:

var html = UseXSLTToGenerateSomeHTML();
var myWindow = window.open('', '', 'width=805,height=493');
myWindow.document.write(html);
myWindow.focus();
mywindow.jQuery.ready();

この場合、これを行うページは jQuery を使用していないことに注意してください...生成された HTML のみが使用します。関係ありません。他のドキュメントで jQuery イベントを生成しています。

于 2012-10-16T20:45:32.657 に答える