0

何度も使用されるオブジェクトをキャッシュすることをお勧めします。しかし、次のように何度も使用する場合はどうでしょうか。

var chacheWindow = window;
var chacheDocument = document;
var chacheNavigator = navigator;
var chacheScreen = screen;
var chacheWindowLocationHash = window.location.hash;
var chacheDocumentBody = document.body;

多分それはの間のものを追いかけるのが良いだけ<html></html>ですか?説明してください。

4

3 に答える 3

6

キャッシュのポイントは、次のいずれかを回避することです。

長い名前を繰り返し入力する

あなたの例はすべて元の名前よりも長い名前を持っているため、その利点は得られません

コストのかかる操作を繰り返し行うことを避けるarray.length(または、ループの前forなど、非常に多くの回数の、わずかにコストのかかる操作)

あなたがその利益を得ているという兆候もありません。

おそらく、参照をローカル変数にコピーするべきではありません。

于 2012-05-03T18:20:48.593 に答える
2

何をキャッシュするべきかを正確に言うのはかなり難しいです。

ネイティブのグローバル オブジェクトや、変更される可能性のあるものはキャッシュしません。この例で行っていることは、同じオブジェクトへの別の参照を作成することです。

DOM 要素への参照はキャッシュする必要があります。そうしないと、再度検索するのに時間がかかります。また、重い操作を行う関数の結果がキャッシュされる可能性があります。

プロファイラーを使用して、さまざまな関数のパフォーマンスを確認し、何をキャッシュする必要があるかについてのヒントを得ることができます。

于 2012-05-03T18:22:13.097 に答える
1

キャッシングは両刃の剣です。計算が集中するか、サーバーへの往復が必要な値がある場合、キャッシュは素晴らしいアイデアです。質問で指定したほとんどすべての値について、何も購入していません。ある変数参照を別の変数参照に置き換えるだけです。

一般的に言えば、これらのマイクロ最適化に行き詰まるのは得策ではありません。パフォーマンスの最適化と改善は良いことですが、一般的には、この種のケースを処理するよりも、あまりにも多くの作業を行っているループを探したり、不適切なアルゴリズムを修正したりすることに時間を費やしたほうがよいでしょう。せいぜいナノ秒の改善ですが、あなたが言及した値については、まったく改善が見られません。

于 2012-05-03T18:22:06.037 に答える