js动态加载资源

33 阅读1分钟

为什么要动态加载:提高页面加载速度,有的一开始用不着的js不加载,等到实际用到了再加载 具体函数怎么封装:

function loadScript(url, callback) {
    var script = document.createElement('script')
    script.type = 'text/javascript'
    //做不同浏览器兼容性处理
    if (script.readyState) {
            //IE浏览器
            script.onreadystatechange = function () {
                    if (script.readyState == 'complete' || script.readyState == 'loaded') {
                            callback()
                    }
            }
    } else {
            //safari|chrome|firefox|opera
            script.onload = function () {
                    callback()
            }
    }
    script.src = url //上面的监听处理函数设置完后再设置src,执行完这条语句后,资源开始下载
    document.head.appendChild(script) //将脚本插入到document,若没有这一句,不会生效
}
//函数执行
loadScript('demo.js', function () {
    test() //test定义再demo.js里;若直接写城test,程序报错,因为此时找不到test
})