polyfill.io를 사용하여 polyfill 약속을하고 이전 클라이언트를 가져옵니다. 우리는 비동기의 사용을 권장하고 polyfill 서비스에서로드 태그에 속성을 연기polyfill 및 다른 스크립트에 설정을 지정하면 순서대로로드됩니다.
: their website 그들은 스크립트가 현대적인 코드를 실행하기 전에 완전히로드되었는지 확인하는 스크립트 로더 또는 콜백을 사용하는 것이 좋습니다 비 차단 방식으로로드하면 폴리 필이로드가 완료되기 전이나 후에 자신의 코드가 실행되는지 여부를 알 수 없습니다.
당신이 당신의 자신의 코드를 실행하려고하기 전에 polyfills이 존재하고 있는지 확인하려면, 당신은 더 복잡한 스크립트 로더를 사용 https://cdn.polyfill.io 스크립트 태그에 onLoad 핸들러를 첨부하거나 단순히을 평가하기 위해 우리의 콜백 인수를 사용할 수 있습니다 이미 그들은 여전히 브라우저가 '아무튼하지 않는 한 그들은 (문서에 나타나는 순서대로 비동기로드되는 것을 보장
그러나 두 스크립트에 defer
을 설정하지 않아야 다음 polyfills이 가로드 글로벌 콜백 지원 연기)? 스크립트로드가 발생할 때 MDN documentationdefer
속성에 따라
<script src="https://cdn.polyfill.io/v2/polyfill.min.js" defer></script>
<script src="modernscript.js" defer></script>
글쎄,이 답변을 보면 : https://stackoverflow.com/a/32413657/5918874 사람들은 연기가 실행 순서를 보장한다고 생각하는 것 같습니다. 또한 여기에서 : https://www.sitepoint.com/non-blocking-async-defer/. 필자는 polyfill.io 문서를 정확히 언급했는데, 그 이유는 반대라고 말하기 때문입니다 (그러나 그들은 비동기와 결합 된 지연에 대해서도 다르고 있습니다). 그리고 mozilla 문서는 그것에 대해 아무 말도하지 않습니다. 이상해. – vsjn3290ckjnaoij2jikndckjb
정상적인 스크립트 로딩 프로세스가 동작을 차단하고, async' 스크립트가 비동기 적으로로드되고,'defer' 스크립트가로드를 시작할 때 다른 시점을 정의하는 것처럼 보입니다. polyfill.io 문서는'async'와'defer' 속성을 모두 추가 할 것을 제안합니다. 그래서'onload' 핸들러를 추가 할 것을 제안합니다. 나는 혼란을 피하기 위해 내 대답을 제거 할 것입니다. – Flying
댓글의 정보를 포함하도록 답변을 업데이트하기로했습니다. 스펙에는 명확한 동작 정의가 없으므로 이러한 유형의 로딩에 의존하지 않고 대신 다른 대안을 고려하는 것이 좋습니다. – Flying