2 a86356 a86356 于 2015.06.23 13:55 提问

异步加载js的问题,为什么能异步加载

这是高性能js的一个例子,为什么没有设置async属性为true就能实现异步下载?

 var script = document.createElement ("script");
script.type = "text/javascript";
script.src = "file1.js";
document.getElementsByTagName_r("head")[0].appendChild(script);

2个回答

danielinbiti
danielinbiti   Ds   Rxr 2015.06.23 14:10

这是script标签,不是ajax,它的异步和同步不是相对于代码执行,而是对于文档解析来说。
加载file1.js是否完成,最终都是通过回调的方式通知。
另外async这是html5的特性,以前版本是没有的

bulusli3
bulusli3   Ds   Rxr 2015.06.23 15:24
以下是一个监听页面加载script的例子。页面通过load或者onreadystate这个方法来监听script是否加载完成,可以体会 一下这个方法。
    _load: function (path, callback) {
        try {
            var script = document.createElement('script');

            script.src = path;
            script.type = "text/javascript";

            document.getElementsByTagName("head")[0].appendChild(script);

            if (script.addEventListener) {
                script.addEventListener("load", callback, false);
            } else if (script.attachEvent) {
                script.attachEvent("onreadystatechange", function () {
                    if (script.readyState == 4 || script.readyState == 'complete' || script.readyState == 'loaded') {
                        callback();

                    }
                });
            }
        } catch (e) {
            console.log(e);
        }
    }
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
【jQuery】使用getScript()方法异步加载并执行js文件
使用getScript()方法异步请求并执行服务器中的JavaScript格式的文件,它的调用格式如下所示: jQuery.getScript(url,[callback])或$.getScript(url,[callback]) 参数url为服务器请求地址,可选项callback参数为请求成功后执行的回调函数。 例如,点击“加载”按钮,调用getScript()加载并执行服务器
异步请求javascript,document.write() 失效问题
a.php中异步请求b.php, 在b.php中引用了外部了js(http://www.google.com/test.js) , test.js中document.write(), 但发现直接运行b.php, test.js中的document.write()可以运行。但a.php异步请求b.php时,b.php中的document.write()不能运行。 google了一下,结果是异步请求
js异步加载的四种解决方案
js异步加载的4种方式,点评开始。方案1:$(document).ready<!DOCTYPE html> <html> <head> <script src="http://common.cnblogs.com/script/jquery.js" type="text/javascript"></script> <script type="text/jav
百度地图异步加载
百度地图异步加载
JS异步加载和延迟加载
1、异步加载的方案: 动态插入script标签   1)通过ajax去获取js代码,然后通过eval执行   2)script标签上添加defer或者async属性   3)创建并插入iframe,让它异步执行js   2、延迟加载:有些 js 代码并不是页面初始化的时候就立刻需要的,而稍后的某些情况才需要的。 1)使用setTimeout延迟方法加载时间,给网页加载留出等多
javascript 异步加载 AMD 实现
目录: demo.html lib----    event.js    dom.js dom.js: //DOM模块 F.module("lib/dom",function(){ return { //获取元素方法 g:function(id){ return document.getElementById(id); }, html:func
Javascript性能优化之异步加载和执行
随着科技的发展,如今的网站和五六年前相比,现在的人们对web的要求越来越高了,用户体验,交互效果,视觉效果等等都有很高的要求,要实现这些功能我们最就需要用到javascript,这时候JS的性能优化就越来越重要了,今天在这里给大家转载一篇IBM开发人员写的怎么优化javascript文章,我觉得写的挺好,希望对大家有所帮助。 无论当前JavaScript代码是内嵌还是在外链文件中
JS/JavaScript前台异步加载并调用回调函数
代码简单直接贴代码 /** * 异步加载依赖的javascript文件 * src:script的路径 * callback:当外部的javascript文件被load的时候,执行的回调 */ function loadAsyncScript(src, callback) { var head = document.getElement
异步加载js不允许使用document write的解决方法
异步加载js不允许使用document.write的解决方法代码: var scriptFile = document.createElement('script');scriptFile.setAttribute(&quot;type&quot;,&quot;text/javascript&quot;);scriptFile.setAttribute(&quot;src&quot;,'http://api.map.baidu.com/api?type=qu
jQuery 异步加载巧用
html: js: /** * 删除银行卡 */ function removeBank(value) { console.log('========='); console.dir(value); } /** * 获取银行卡列表 */ function listBankcard() { $.getJSON(list_bankcard_url,{'use