何が異なる目的$
で使用するスクリプトを壊すのか推測する必要はありません。このような$
ページを考えてみてください(これは実際には野生で見られるものに比べてかなり弱い例ですが、それでも十分に困難を示していると思います):
<div class="bar">
<div class="foo">
<div class="bar">
How will the browser know to select this div with the selector '.bar .foo .bar', without actually running this script the way it is designed?
</div>
</div>
</div>
<script>
window.onload = function(){
var x = $('.foo');
console.log(x);
console.log(x.selector) // '.bar .foo .bar'
};
</script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script>
var $ = function(){
return arguments[0];
};
$ = (function($){
return function(selector){
return jQuery('.bar ' + selector + ' ' + $('.bar'));
}
})($);
</script>
どのdivを事前に選択するかをブラウザが知ることは、最適化を超えています。実際、ブラウザは、正しいdivを選択するために、設計された方法でスクリプトを実行する必要があります。
ただし、JavascriptをJavaやC++コードなどのやや低レベルの言語にコンパイルする多くのブラウザ。次に、ブラウザがjQueryをダウンロードしてキャッシュすると、ユーザーのコンピュータにコンパイルされた形式でキャッシュされます。これはjQuery
、キャッシュされたスクリプトで発生するため、特定の最適化ではありませんが、のような大きなスクリプトの最適化ではより重要ですjQuery
。