2014-04-19 4 views
0

공용 CDN의 폴백 처리에 yepnope를 사용하려고합니다.Yepnope fallback

예제 코드 :

yepnope([ 
{ 
    load: [ 
     'http://tinymce.cachefly.net/4.0/tinymce.min.js' 
    ], 
    complete: function(){ 
     if (typeof(tinymce) === 'undefined') { 
      yepnope('/js/tinymce.min.js'); 
     }; 
     tinymce.init({selector:'textarea'}); 
    } 
} 
]); 

코드는 기본적으로 노력하고 있습니다. 공용 CDN에 장애가 발생하면 로컬 CDN이로드됩니다. 그러나 문제는 로컬 스크립트가로드되고 실행을 계속할 때까지 기다리지 않는다는 것입니다. 이 예제 코드에서는 로컬 tinymce 스크립트가로드되기 전에 tinymce.init({selector:'textarea'});을 실행합니다.

어떻게 해결할 수 있습니까? 고맙습니다.

답변

3

yepnope은 비동기식이므로로드를 대기해야하는 모든 항목은 complete 옵션에서 수행해야합니다.

yepnope([ 
    { 
     load: [ 
      'http://tinymce.cachefly.net/4.0/tinymce.min.js' 
     ], 
     complete: function(){ 
      if (typeof(tinymce) === 'undefined') { 
       yepnope([ 
        { 
         load: ['/js/tinymce.min.js'], 
         complete: function() { 
          tinymce.init({selector: 'textarea'}); 
         } 
        } 
       ]); 
      } else { 
       tinymce.init({selector:'textarea'}); 
      } 
     } 
    } 
]);