Tuesday, May 17, 2011
html input button issue
Now remove the label (begin and end) tag and try the same code. Everything would work fine.
Tuesday, May 10, 2011
Simple javascript optimizations
Rule: Consider using local variable instead of global variable.
Rule: Avoid using eval() or function constructor.
Rule: Pass function, not string to setTimeout() and setInterval(). Passing stirng is same as calling eval().
Rule: Avoid using with().
For-in loop vs for loop
Slow:function forinloop() { var count=10000; var arr=new Array(); for(var i=0;i<count;i++) { arr[i]=i; } var value=0; for(var index in arr) { value+=arr[index]; } }Faster:
function forloop() { var count=10000; var arr=new Array(); for(var i=0;i<count;i++) { arr[i]=i; } var value=0; count= arr.length; for(var index=0;index<count;index++) { value+=arr[index]; } }
Rule: Avoid using for-in loop, instead use for() loop.
String concatenation vs array join
Slow:function stringcat() { var count=10000; var str=""; for(var i=0;i<count;i++) { str+="first,"; } }Faster:
function arrayjoin() { var count=10000; var arr=new Array(); for(var i=0;i<count;i++) { arr[i]="first"; } var str=arr.join(""); }
Rule: Avoid string concatenation and use array join. The performance difference in significant only in IE 7.
Inbuilt functions vs primitive operations
Slow:function mathmin() { var count=10000; for(var i=0;i<count;i++) { var a=10; var b=5; var min = Math.min(a, b); } }Faster:
function primitiveop() { var count=10000; for(var i=0;i<count;i++) { var a=10; var b=5; var min = a < b ? a : b; } }
Rule: Avoid function calls, try to use primitive operations. The performance difference in significant only in IE 7.
External function vs inline function
Slow:function minfunction(a,b) { var min = a < b ? a : b; return min; } function externalfunction() { var count=10000; for(var i=0;i<count;i++) { var a=10; var b=5; var min=minfunction(a,b); } }Faster:
function inlinefunction() { var count=10000; for(var i=0;i<count;i++) { var a=10; var b=5; var min = a < b ? a : b; } }
Rule: Avoid external function calls, try to use inline functions. The performance difference in significant only in IE 7.
Comments in the script
Slow:function withcomments() { var count=50000; for(var i=0;i<count;i++) { /* dummy comments */ /* dummy comments */ var a=10; /* dummy comments */ /* dummy comments */ var b=5; /* dummy comments */ /* dummy comments */ var min = a < b ? a : b; /* dummy comments */ } }Faster:
function withoutcomments() { var count=50000; for(var i=0;i<count;i++) { var a=10; var b=5; var min = a < b ? a : b; } }
Rule: Avoid comments in performance critical script. The performance difference in significant only in IE 7.
Try catch in performance critical functions
Slow:function withtrycatch() { var count=50000; for(var i=0;i<count;i++) { try { var num=parseInt("10"); } catch(e) { //handle exception } finally { } } }Faster:
function withouttrycatch() { var count=50000; for(var i=0;i<count;i++) { var num=parseInt("10"); } }
Rule: Avoid using try catch inside performance critical function.