2012年07月28日
javascript は変数に入れよう
javascript を高速化したい行なう場合、
オブジェクトを参照しているものは、
片っ端から変数に入れることが有効です。
以下の jQuery を使った例ですが、動作は同じです。
// (1)意味は無いけど表示して非表示
$('#foo').show();
$('#foo').hide();
// (2)変数に入れてから表示して非表示
var $_foo = $('foo');
$_foo.show();
$_foo.hide();
違いは、実行コストです。
(1)は大まかに、以下のような処理を行ないます。
$('#foo') id='foo' の要素を検索
.show() 要素を表示
$('#foo') id='foo' の要素を検索
.hide() 要素を非表示
(2)は、以下のような処理になります。
$_foo = $('foo') id='foo' の要素を変数に格納
.show() 要素を表示
.hide() 要素を非表示
id='foo' を毎回探すのかどうかによって、処理速度が変わってきます。
また、こんな処理を書いたことはありませんか?
for(var ind = 0; ind < arr.length; ind++){
}
これは、ループごとに arr.length が評価されます。
以下のようにしてみてはいかがでしょうか?
for(var ind = 0, max = arr.length; ind < max; ind++){
}
arr.length を変数に入れておいて、毎回参照しなくてもよいようにしています。
オブジェクトを参照しているものは、
片っ端から変数に入れることが有効です。
以下の jQuery を使った例ですが、動作は同じです。
// (1)意味は無いけど表示して非表示
$('#foo').show();
$('#foo').hide();
// (2)変数に入れてから表示して非表示
var $_foo = $('foo');
$_foo.show();
$_foo.hide();
違いは、実行コストです。
(1)は大まかに、以下のような処理を行ないます。
$('#foo') id='foo' の要素を検索
.show() 要素を表示
$('#foo') id='foo' の要素を検索
.hide() 要素を非表示
(2)は、以下のような処理になります。
$_foo = $('foo') id='foo' の要素を変数に格納
.show() 要素を表示
.hide() 要素を非表示
id='foo' を毎回探すのかどうかによって、処理速度が変わってきます。
また、こんな処理を書いたことはありませんか?
for(var ind = 0; ind < arr.length; ind++){
}
これは、ループごとに arr.length が評価されます。
以下のようにしてみてはいかがでしょうか?
for(var ind = 0, max = arr.length; ind < max; ind++){
}
arr.length を変数に入れておいて、毎回参照しなくてもよいようにしています。
【このカテゴリーの最新記事】
-
no image
-
no image
-
no image
-
no image
-
no image
posted by FJT at 13:15| javascript