2017년 1월 23일 월요일

Document 가 Load 된 후에 Script Library ready 상태에서 실행 해야 할때 .


Jquery 의 $.ready 와  같이 Document 가 Load 되었는지 여부 판단 하에 스크립트를 실행 할 수 있다?

    (function() {
        window.d$={};
        d$Handlers = [];
        d$.ready = function ready(handler) {
            d$Handlers.push(handler);
            handleState();
        };
        handleState = function handleState () {
            if (['complete'].indexOf(document.readyState) > -1) {
                while(d$Handlers.length > 0) {
                    (d$Handlers.shift())();
                }
            }
        };
        document.onreadystatechange = handleState;
        var s = document.createElement('script');
        s.type = 'text/javascript';
        s.async = true;
     
        // 새로고침시 스크립트 캐쉬를 지우기 위해 버전을 달아 준다.
        s.src = 'http://localhost:8080/js/code.js?dc=' + Math.random(1);
        var x = document.getElementsByTagName('script')[0];
        x.parentNode.insertBefore(s, x);
    })();

d$.ready(function(){
// code.js 가 Load 된 후 code js 에 선언된 d$ 관련 내용을 이용하여
// 라이브러리가 ready 상태에서 스크립트를 실행 해야 할때.
// 여기에 작성 하면 잘 돌아 간다.
});

댓글 없음:

댓글 쓰기