忍者ブログ
JavaScript , Java , DOS , HTML(CSS) , JSP , SQL , VB , VBScript , ・・・etc などの覚書
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

備忘録として

タスクの設定で、開始日を過去の日時にすると、明日から開始される。
現時刻より、1分でも遅く登録すれば、すぐ開始される。


PR
なかなかお洒落なフォームを発見

http://www.emblematiq.com/lab/niceforms/


しかしCSSでなく、JavaScriptで表示後にデザインを変えている。
チェックボタンのチェックなどがJavascriptで出来なかったりする・・。


処理速度(1)に続く第2弾

1)new Array より [](Arrayリテラル)
for(var i=0;i<loop;i++)[]; // 約88ms
for(var i=0;i<loop;i++)new Array; // 約133ms
2)Math.absよりも三項演算子
絶対値を求める場合、Mathクラスのabsメソッドを呼ぶよりも三項演算子で解決したほうが高速です。1万回の試行で約18msの高速化!
function abs(){
   var a = 100;
   return a>0?a:-a;
}
for(var i=0;i<loop;i++)abs(); // 約50ms
function mathAbs(){
   var a = 100;
   return Math.abs(a);
}
for(var i=0;i<loop;i++)mathAbs(); // 約68ms
3)単純な数字文字列から数値の変換はプラス単項演算子で
数字文字列から数値を取得する方法はいくつかありますが、数字のみで構成される文字列であればプラス演算子で解決するのが高速です。parseInt呼び出しと比較した場合、1万回の試行で約80msの高速化!
for(var i=0;i<loop;i++)+"0"; // 約26ms
for(var i=0;i<loop;i++)parseInt("0"); // 約106ms
4)小数点切捨てにparseIntを利用しない
素直にMath.floorを利用したほうが高速です。1万回の試行で約50msの差が出ます。

for(var i=0;i<loop;i++)Math.floor(i); // 約74ms
for(var i=0;i<loop;i++)parseInt(i,10); // 約125ms

5)documentのアクセスはローカル変数に
for(var i=0;i<loop;i++)document; // 約11ms
var doc = document;
for(var i=0;i<loop;i++)doc; // 約4ms

6)domオブジェクトのプロパティアクセスに注意しろ!
for(var i=0;i<loop;i++)div.offsetWidth; // 約127ms
var ow = div.offsetWidth;
for(var i=0;i<loop;i++)ow; // 約5ms

7)try~catch~句は遅い
ry~catch~句が現れると、スクリプト実行に若干のオーバーヘッドが発生します。ループ内では注意が必要で、ループ全体をtry~catch~で囲んだほうがオーバーヘッドが少なくなるようです。

for(var i=0;i<loop;i++)i; // 約4.3ms
for(var i=0;i<loop;i++)try{i}catch(e){}; // 約5.8ms
try{for(var i=0;i<loop;i++)i;}catch(e){}; // 約4.9ms

8)真偽値評価はbooleanで
if文の評価にオブジェクトを書けば null or undefined でfalse扱いとなりますが、booleanで評価したほうが若干高速となるようです。
for(var i=0;i<loop;i++)if(true)i; // 約5.3ms
var o={};
for(var i=0;i<loop;i++)if(o)i; // 約7.5ms



 

引いた時間:time
time=(logoutdt-logindt)*24*60*60

select (:time - mod(:time,3600))/3600 ||'時間'||(mod(:time,3600) - mod(mod(:time,3600),60))/60 ||'分'||mod(mod(:time,3600),60)||'秒' from dual;


ブログ内検索
カレンダー
03 2025/04 05
S M T W T F S
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30

Copyright © [ moriBlog-memo ] All rights reserved.
Special Template : 忍者ブログ de テンプレート Special Thanks : 忍者ブログCommercial message : [PR]