今天跟大家分享的是js异步加载,JS在默认情况下是阻塞模式加载的。如果说页面中加载一些JS,但其中某个请求迟迟得不到响应,那么JS后面的JS要等着它所以无法执行,并且页面渲染也不能继续,大家看到的就是白屏,那么我们应该怎么去解决呢?
目前我觉得最好的方法就是,通过动态创建script的方式去解决。
下面呢就给大家看一下我封装的异步加载的代码。
<script>
function loadScript(url, callback) {
// 1.定义一个script元素对象
var script = document.createElement('script');
// 判断js是否加载完成
script.onload = function () {
callback()
}
// IE
script.onreadystatechange = function () {
if (this.readystate === 'loaded' || this.readystate === 'complete') {
callback()
}
}
// 设置js的路径
script.src = url;
// 向页面结构中添加script元素
document.body.appendChild(script);
}
loadScript('01.js', function () {
test();
});
</script>