2014-07-23 2 views
0

비동기식 iframe에서 위젯을 사용하여 파트너 웹 사이트에서 응용 프로그램을 실행합니다.네트워크에서 자바 스크립트 로딩을 중단합니다.

일부 네트워크에서는 Google 서버 중 하나에 연결할 수 없으며 일부 사용자는 계속해서 "our.domain.com에서로드 중 ..."에 대해 주장하고있어 사용자 환경에 직접적인 영향을줍니다.

네트워크 오류가 발생하면 리소스로드를 중단 할 수 있습니까?

우리 환경은 외부 lib (예 : jquery, zepto, ...)에 의존 할 수 없습니다. 우리의 코드는 원시 자바 스크립트로 작성되었습니다.

몇 가지 제한 시간이 지난 후에 javascript 요소를 제거하려고했으나 여기에 나와있는 일부 리소스와 같이 작동하지만 아무도 작동하지 않습니다.

여기서 테스트 코드의 한 조각입니다. 준비가되지 않은 경우 요소가 1 초 후에 < 스크립트를 제거합니다.

setTimeout(
    function(){ 
     //Check if it is ready using a control var 
     if (! contextControl.isReady){ 
      // Not Ready 
      var trgt = document.getElementById("element-id"); 
      //force element drop 
      trgt.parentNode.removeChild(trgt); 
     } 
    }, 1000 
); 

자바 스크립트 요소를 효과적으로 제거하지만 리소스로드를 중단하지 않습니다.

이 리소스 로딩을 중단하는 효과적인 방법이 있습니까?

답변

0
나는 오류 처리와 비동기 로딩을 사용하려고 할

:

$.getScript("ajax/test.js") 
    .done(function(script, textStatus) { 
    console.log(textStatus); 
    }) 
    .fail(function(jqxhr, settings, exception) { 
    $("div.log").text("Triggered ajaxError handler."); 
}); 

http://api.jquery.com/jQuery.getScript/

+0

내가 조언하는 것을 잊지. 우리는 고객 웹 사이트에서 jquery를 사용하지 않습니다. 이 종속성을 제거했습니다. – apast

+0

자신 만의 함수를 만들 수 있습니다. http://stackoverflow.com/questions/7718935/load-scripts-asynchronously – Pierre

+0

스크립트 삽입 기능이 제대로 작동하고 있습니다. 네트워크 문제가 발생하면 스크립트 로딩을 중단하는 문제가 있습니다. 위에서 썼던 .fail() 호출과 비슷합니다. 그러나 우리가 필요로하는 것은 타임 아웃 제어와 브라우저 스크립트 로딩 중단과 같은 것입니다. – apast

관련 문제