어떤 컨텐트가 다 읽혔는지 비동기적으로 확인하기 위해서 setTimeout 을 호출해본 적이 있습니까? 그런 일은 꽤 자주 일어나는 편인 것 같습니다. Paul Irish씨가 필요한 라이브러리가 읽힌 후에 코드를 실행할 수 있도록 도와주는 간단한 유틸리티를 작성했습니다.

그의 executeWhenLoaded(function, objects, that, must, be, present) 를 이용해 이런 식으로 사용할 수 있습니다:
[code:js]
executeWhenLoaded(function(){
    console.log(session.data);
}, 'session');   // session will return a value when the whatever preceding functionality is done.
구현은 간단하게 되어있습니다:
[code:js]
function executeWhenLoaded(func){
 
  for (var i = 1; i<arguments.length; i++){ // for loop starts at 1 to skip the function argument.
    if (! window[ arguments[i] ]) {
      setTimeout(arguments.callee,50);    
      return;
    }
  }
 
  func(); // only reaches here when for loop is satisfied.
}

from Polling for loaded content instead of simple setTimeout on Ajaxian
Posted by 행복한고니 트랙백 0 : 댓글 0