자바스크립트로 인해서 delay 가 발생합니다.

자바스크립트로 인해서 delay 가 발생합니다.

QA

자바스크립트로 인해서 delay 가 발생합니다.

본문

제작중인 사이트에 적용한 스크립트입니다.

원래는 한줄로 표시된것을 보기좋게 재정리하였습니다.

 

<script>
!function(e){
    function t(){
        
        if(/in/.test(e.readyState))setTimeout(t,1);
        else {
            for(var s=0;s<e.styleSheets.length;s++){
                var i=e.styleSheets[s];"html4css"!==i.title&&(i.disabled=!0)
            }
        }
    }
    
    function s(){
        !e.readyState&&e.addEventListener&&(e.body?setTimeout(function(){
            e.readyState="complete"
        },500):setTimeout(s,1))
    }
    
    var i,o=window.A17||{},
    n=e.documentElement,c=window,
    a=e.getElementsByTagName("head")[0];
    o.browserSpec="addEventListener"in c&&c.history.pushState&&e.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")?"html5":"html4",
    o.touch=!!("ontouchstart"in c||c.documentTouch&&e instanceof DocumentTouch),
    o.objectFit="objectFit"in n.style,o.iOS=/iPad|iPhone|iPod/.test(navigator.userAgent),
    window.A17=o,n.className=n.className.replace(/\bno-js\b/," js "+o.browserSpec+(o.touch?" touch":" no-touch")+(o.objectFit?" objectFit":" no-objectFit")+(o.iOS?" ios":" no-ios")),
    "html4"===o.browserSpec&&(
        i=e.createElement("link"),
        i.rel="stylesheet",
        i.title="html4css",i.href="/dist/styles/html4css.css",
        a.appendChild(i),
        i=e.createElement("script"),
        i.src="//legacypicturefill.s3.amazonaws.com/legacypicturefill.min.js",
        a.appendChild(i),
        s(),
        t()
    )

}(document);
</script>

 

이것이 적용되면 링크를 클릭할때 페이지 전환이 안되는 경우가 종종 발생합니다.

setTimeout  때문에 그런가 싶어서  1 또는 0 으로 변경해도 비슷한 상황이네요.

 

위 어떤 코드가 이런 증상을 발생하는데 역할을 하는 걸까요?

이 질문에 댓글 쓰기 :

답변 1

 function s(){
        !e.readyState&&e.addEventListener&&(e.body?setTimeout(function(){
            e.readyState="complete"
        },500):setTimeout(s,1))
    }

잘모르지만..조금이나마 도움을 드리고자 남겨봅니당..

 

setTimeout 이 꼭 필요한가요? 빼고는 안되나요?

 

위 500이 해당 값만큼 딜레이 되는중에 실행이되서 전환이 안되는게아닐까요?

답변을 작성하시기 전에 로그인 해주세요.
전체 409
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT