JavaScript 함수 타성 불 러 오 는 실현 및 장점 소개

최근 자 바스 크 립 트 의 고급 프로 그래 밍 을 보고 큰 성 과 를 거 두 었 습 니 다.다음 며칠 동안 독서 노트 를 쓰 겠 습 니 다.이전에 Ajax 가 초보 적 으로 이해 하 는 수필 을 썼 습 니 다.그 안에 XmlHttpRequest 대상 을 만 드 는 함수 가 있 습 니 다.브 라 우 저 호환성 원인 으로 작 성 된 코드 는 대량의 if 판단 이나 try,catch 문 구 를 통 해 함 수 를 정확 한 코드 로 유도 합 니 다.
 
<script type="text/javascript">
function createXHR(){
var xhr = null;
try {
// Firefox, Opera 8.0+, Safari,IE7+
xhr = new XMLHttpRequest();
}
catch (e) {
// Internet Explorer
try {
xhr = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e) {
try {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e) {
xhr = null;
}
}
}
return xhr;
}
</script>
이 함 수 를 호출 할 때마다 브 라 우 저 능력 검 사 를 먼저 합 니 다.먼저 브 라 우 저가 내 장 된 XML HyypRequest 대상 을 지원 하 는 지 확인 합 니 다.지원 하지 않 으 면 각 버 전의 ActiveX 기반 XML HttpRequest 를 검사 합 니 다.이 함 수 를 호출 할 때마다 이 렇 습 니 다.사실 처음 실 행 된 후에 브 라 우 저가 특정한 XML HttpRequest 대상 을 지원 한다 면,그러면 다음 에 실 행 될 때 이러한 지원 성 은 변 하지 않 을 것 입 니 다.한 개의 if 문구 만 있 더 라 도 실행 이 없 는 것 보다 느 릴 것 입 니 다.만약 에 우리 가 if 문 구 를 매번 실행 하지 않 아 도 된다 면 빈번 한 호출 상황 에서 실행 속 도 를 높 일 수 있 습 니 다.해결 방안 은 타성 불 러 오 는 기교 라 고 한다.타성 불 러 오기 타성 불 러 오기 함수 가 실 행 된 가 지 는 함수 가 처음 떨 어 졌 을 때 만 실 행 됩 니 다.첫 번 째 호출 과정 에서 이 함 수 는 다른 적당 한 방식 으로 실 행 된 함수 로 덮어 씁 니 다.그러면 원 함수 에 대한 호출 은 더 이상 실 행 된 가 지 를 거치 지 않 아 도 됩 니 다.createXHR 함 수 는 이렇게 변경 할 수 있 습 니 다.장점 타성 불 러 오기 함 수 는 두 가지 주요 장점 이 있 습 니 다.첫 번 째 는 뚜렷 한 효율 문제 입 니 다.첫 번 째 로 실 행 될 때 함수 가 할당 을 의미 하기 때문에 실행 이 느 리 지만 후속 호출 은 중복 검 측 을 피 하 는 것 이 빠 릅 니 다.두 번 째 는 실행 할 적당 한 코드 는 실제 호출 함수 만 실 행 됩 니 다.많은 자바 스 크 립 트 라 이브 러 리 는 불 러 올 때 브 라 우 저 에 따라 여러 가지 가 실 행 됩 니 다.모든 것 을 설정 하고 불활성 불 러 오 는 함 수 는 지연 되 며 초기 스 크 립 트 의 실행 시간 에 영향 을 주지 않 습 니 다.

좋은 웹페이지 즐겨찾기