2

説明: オブジェクトがほとんどなく、$(document).ready() 内で宣言しています。なぜ?Thousオブジェクトには多くのjqueryメソッド$(..)があるため、明らかにそれらは外部でも機能しますが、mootoolを含めると機能しなくなります。$() を jQuery() または $j().. に変更した場合にのみ、 noConflict と他のいくつかのことを試しましたが、20 個のファイルと各ファイルの 2000 行以上を変更したくありません。とにかく、$(document).ready() 内でオブジェクトを宣言します。それらをうまく機能させました。

今私の質問は: $(document).read() メソッド内でこれらすべてのオブジェクトを宣言すると、サイトが遅くなりますか? または、クライアント側から物事が遅くなりますか?それが私の心の唯一の懸念です。

4

3 に答える 3

4

それを行うと、サイトが遅くなることがわかりません。内でそれらを宣言することにより$().ready、宣言のスコープをその特定の関数に制限するだけです。したがって、同じページの他の$().ready準備ができている関数のスコープ内からそれらを使用することはできません。アプリケーションが適切に設計されており、ページごとに 1 つに固執しています。

宣言は、DOM が完全に読み込まれるまで解析されません (ご存じのように$().ready、DOM が読み込まれると実行されるだけです)。準備ができている関数内で(少なくとも私は願っています)。

本当に 2 つのライブラリが必要ですか? それらのライブラリの 1 つから使用している機能が 1 つまたは 2 つだけの場合は、最もよく使用しているライブラリを使用してその動作を模倣できる可能性があります。もしあなたがそれを可能/実行可能に行うことができれば、それはあなたの人生をとてもシンプルにするでしょう.

于 2009-11-04T00:14:39.580 に答える
1

すべてを実行しjQuery.readyても、サイトの速度が低下することはありません。

$別の解決策として、すべての jQuery コードをに置き換えるjQueryか、次のような関数でラップすることができます。

(function($) {
    $('whatever').something();
})(jQuery);

このコードは、 というパラメーターを受け取る関数を作成し、その関数をオブジェクト$で呼び出します。jQueryこの$パラメーターは、mootools のグローバル$オブジェクトを関数のスコープ内に隠し、関数内に通常の jQuery コードを記述できるようにします。

于 2009-11-04T00:06:03.073 に答える
-1

jQuery.noConflictリクエストの前に宣言し てからdocument.ready、jQuery メソッドを $ within にエイリアスしdocument.readyます ...

jQuery.noConflict();
jQuery(document).ready(function($){

});
于 2009-11-04T00:01:19.787 に答える