> 웹 프론트엔드 > JS 튜토리얼 > JavaScript AJAX 지연 로딩 function_javascript 기술

JavaScript AJAX 지연 로딩 function_javascript 기술

WBOY
풀어 주다: 2016-05-16 16:38:38
원래의
1173명이 탐색했습니다.

JS의 일부 메모리는 한 번만 실행하면 됩니다. 예를 들어, 브라우저 유형 감지는 Ajax를 사용할 때 브라우저에 내장된 XHR을 감지해야 하기 때문에 가장 일반적으로 사용되는 기능입니다. 첫 번째 감지 시 유형을 기록할 수 있으며 향후 Ajax를 사용할 때 브라우저 유형을 감지할 필요가 없습니다. JS에서는 if 문이 하나만 있어도 if 문이 없는 것보다 항상 더 효율적입니다.

일반적인 Ajax 방식

코드 복사 코드는 다음과 같습니다.

/**
* JS 게으른 기능
​*/

함수 ajax(){
If(XMLHttpRequest 유형 != "정의되지 않음"){
           새로운 XMLHttpRequest() 반환;                                     }else if(ActiveXObject 유형 != "정의되지 않음"){
If(arguments 유형.callee.activeXString != "string"){
             var versions = ["MSXML2.XMLHttp.6.0", "MSXML2.XMLHttp.3.0", "MSXML2.XMLHttp"];
for(var i=0,k=version.length;i                   시도해 보세요{
                            새 ActiveXObject(버전[i])
                     인수.callee.activeXString = 버전[i];
휴식;
                   }잡다(예){
예를 던져
                }
            }
~
          새 ActiveXObject(arguments.callee.activeXString) 반환
}그밖에{
"XHR 객체 없음"을 던집니다.
}
}


ajax() 함수가 호출될 때마다 브라우저에 내장된 XHR을 확인해야 하는데 이는 효율적이지 않습니다.

게으른 접근 방식 사용

코드 복사 코드는 다음과 같습니다.

/**
* JS 게으른 기능
​*/
 
함수 ajax(){
    if(typeof XMLHttpRequest != "정의되지 않음"){
        아약스 = 함수(){
            새로운 XMLHttpRequest()를 반환합니다.   
        };
    }else if(ActiveXObject 유형 != "정의되지 않음"){
        아약스 = 함수(){
            if(arguments 유형.callee.activeXString != "string"){
                var versions = ["MSXML2.XMLHttp.6.0","MSXML2.XMLHttp.3.0","MSXML2.XMLHttp"];   
 
                for(var i=0,k=version.length;i                     시도해 보세요{
                        var xhr = new ActiveXObject(versions[i]);  
                        인수.callee.activeXString = 버전[i];
                        x시간 반환;
                    }잡다(예){
                        예를 던져;  
                    }
                }
            }  
 
            새로운 ActiveXObject(arguments.callee.activeXString)를 반환합니다.
        }
    }그밖에{
        아약스 = 함수(){
            "XHR 개체 없음"을 throw합니다. 
        }
    }
 
    return ajax();
}

이 경우에는 ajax()를 사용하여 새로운 ajax()를 사용하세요.直接调사용变weight。

화중중

要执行特定代码只有实际调用才执行,而某些JS库一开始就检测浏览器,预先设置好。

由于加了复杂는 매우 즐거운 여행입니다.
 
有时候写代码久了,不能一成不变,要经常思考怎样才能使程序运行的更快,更有效率。才是精装,而不会产生多余的垃圾代码。这也不是简单OO就能一刀切,实际上代码很多地方是活的,人更是活的。

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿