js性能最適化整理の不活性性ロード


ブラウザの特性をチェックして、異なるブラウザの対応問題を解決します.例えば、私たちの最も一般的なdomノードにイベントの関数を追加します.
 
	 function addEvent(element,type,handler){

		if(element.addEventListener){

			element.addEventListener(type,handler,false)

			}else if(element.attacheEvent){   //attacheEvent

				element.attachEven('on'+type,function(){

					handler.apply(element,arguments);    // attachEvent   ,  this    

					});

				

				}else{

					element['on'+type]=handler;

					

					}

		}
 
     addEvent      ,                 ,        addEventListener   ,     ,        attachEvent   ,      ,   dom 0         。     ,  addEvent               ,  ,              ,          ,                ,     ,if          ,           。
 
解決方法:惰性ロード
	function addEvent (element,type,handler) {

		  if (element.addEventListener) {

			  addEvent = function (element,type,handler) {

				  element.addEventListener(type, handler, false);

			  }

		  }

		  else if(element.attachEvent){

			  addEvent = function (element,type,handler) {

				  element.attachEvent('on' + type, function(){

					  handler.apply(element,arguments);    // attachEvent   ,  this    

					  });

			  }

		  }

		  else{

			  addEvent = function (element,type,handler) {

				  element['on' + type] = handler;

			  }

		  }

		  return addEvent(element,type,handler);

	  }
関数宣言時に適切な関数を指定します.このように関数を初めて呼び出した時には性能が損なわれず、コードを読み込む時には性能がわずかに損なわれます.
 
 var addEvent = (function () {

    if (document.addEventListener) {

        return function (type, element, handler) {

            element.addEventListener(type, handler, false);

        }

    }

    else if (document.attachEvent) {

        return function (type, element, handler) {

            element.attachEvent('on' + type, function(){

				 handler.apply(element,arguments);    // attachEvent   ,  this    

				});

        }

    }

    else {

        return function (type, element, handler) {

            element['on' + type] = handler;

        }

    }

})();