js 성능 최적화 정리의 타성 불 러 오기

2249 단어 성능 최적화
브 라 우 저의 특성 을 크로스 검사 하여 서로 다른 브 라 우 저의 호환성 문 제 를 해결 합 니 다.예 를 들 어, 우리 가 가장 흔히 볼 수 있 는 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;

        }

    }

})();

좋은 웹페이지 즐겨찾기