登录页进入,可以把暂时不需要的js插件进行动态异步载入,提高页面渲染效率,方法如下:
这里以引入ckplayer为例
<body>
<script type="text/javascript">
// 动态生成腳本
// urls----script.src地址数组、callback---回调函数
function loadScripts(urls, callback) {
callback = callback || function () {
};
var loader = function (src, handler) {
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = src;
//重点!!!!script加载成功
script.onload = function () {
script.onload = null;
script.onerror = null;
handler();
};
script.onerror = function () {
script.onload = null;
script.onerror = null;
callback({
message: src + '依赖未加载成功!'
});
};
var head = document.getElementsByTagName('body')[0];
(head || document.body).appendChild(script);
};
//自执行函数,用于循环loader
(function run() {
if (urls.length > 0) {
loader(urls.shift(), run);
} else {
callback();
}
})();
console.log(document.head);
}
var relies = ['./ckplayer/ckplayer/ckplayer.js']
window.onload = function () {
loadScripts(relies, function cb(err) {
if (err) {
return console.log(err.message);
}
})
}
</script>
</body>