一兩件事,所有這裏的運行時性能測試懷念的是另一個重要的考慮因素:
網絡帶寬。
緩存$(this)
到一個局部變量通常會降低你的腳本的大小,精縮尤其是當(因爲this
不能從四個字符減少)。
考慮:
function hello(text) {
$(this).attr();
$(this).css();
$(this).data();
$(this).click();
$(this).mouseover();
$(this).mouseleave();
$(this).html(text);
}
hello('Hello world');
Closure編譯器的縮小的輸出是
function hello(a){$(this).attr();$(this).css();$(this).data();$(this).click();$(this).mouseover();$(this).mouseleave();$(this).html(a)}hello("Hello world");
這樣可以節省39個字節(20%)。現在考慮:
function hello(name) {
var $this = $(this);
$this.attr();
$this.css();
$this.data();
$this.click();
$this.mouseover();
$this.mouseleave();
$this.html(name);
}
hello('Hello world');
縮小的輸出是
function hello(b){var a=$(this);a.attr();a.css();a.data();a.click();a.mouseover();a.mouseleave();a.html(b)}hello("Hello world");
這樣可以節省74個字節(37%),幾乎翻了一番我們節省字節。顯然,在大型腳本中真實世界的節省將會降低,但是仍然堅持通過緩存來顯着減少腳本的大小。
真的,高速緩存$(this)
只有一個好處。您可以獲得微乎其微但可衡量的運行時性能增益。更重要的是,您可以減少通過線路傳輸的字節數,並且直接轉換爲更多美元,因爲faster page loads equal more sales。
當你看到這樣的說法,你實際上可以說有一個量化的美元成本來重複$(this)
,而不是將其高速緩存。
'$(this)'明顯的意思是「'(this)'dollars」。 – BoltClock
你應該總是緩存,但在這個特定的例子中,你甚至不需要這樣做。只需利用jQuery鏈接:'$(this).addClass('fooClass')。attr('data-bar',「bar」).css('background-color','red');' –