2017-03-16 8 views
1

JSON 파일의로드가 정상적인 페이지로드를 방해하지 않도록 JSON이 5MB가 크더라도이 거대한 JSON이로드되는 동안 앱은 여전히 ​​다른 중요한 기능을 수행합니다.자바 스크립트에서 지연된 스크립트 태그 json 파일 콘텐츠를 참조하는 방법은 무엇입니까?

이 JSON 파일이 지연 스크립트 태그에 실제로로드되어 있기 때문에 도전 과제가 발생합니다. 자바 스크립트에서 어떻게 참조 할 수 있습니까? </body>의 끝 부분 바로 전에 JSON 파일을로드하는 경우 내 자바 스크립트에서 어떻게 알 수 있습니까?

이것을 달성하기위한 어떠한 생각이나 좋은 대안도 크게 감사하겠습니다.

감사합니다.

답변

2

JSON을 비동기 적으로로드 한 다음 이벤트를 실행할 수 있습니다! 마찬가지로 :

yourScript.js

window.myJSON = {...A lot of JSON} 
const event = new CustomEvent("myJson-loaded", {"myJson": window.myJSON}) 
document.dispatchEvent(event) 

모든 자바 스크립트가 지금처럼 작동 할 수 있습니다합니다 (JSON 포함하는 가져 ) :

document.addEventListener("myJson-loaded", function(e) { 
    // Prints contents of window.myJSON, you can also, access it via the global variable myJson. 
    console.log(e.detail) 
    /*========= All your JS code here ===========*/ 
}); 

을 그리고 당신의 코드베이스 인 경우를 여러 스크립트 파일로 분할하면 해당 이벤트를 스크립트 파일에서들을 수 있습니다!

+0

실제로 이것은 정말로 흥미로운 것 같습니다! – Ezeewei

+0

작동하는 경우 허용으로 표시하십시오! –

+0

이상한 일이지만, 지연된 javascript 파일이 적어도 완전히로드 된 모든 js 파일을 기다리는 것 같지 않습니다. 이건 잘못된' Ezeewei