异步加载javascript文件

时间:2013-12-29 06:30:05

标签: javascript ajax asynchronous

我试图以下列方式对服务器进行异步调用

$(document).ready(function(){
    $.ajax({
    cache: true,
        async: true,
        dataType: "script",
        url:"www.xyz.com/yyy?host_name=abc.com&size=S&use_flash=YES&use_transparent=YES&lang=en",
       success: function(data) { 
            $("#verified").append(data);
                console.log("data is "+data);
                loading = false; 
            } 
       });
});

但是脚本没有异步加载。我到底错过了什么?任何帮助将不胜感激!

3 个答案:

答案 0 :(得分:3)

使用以下函数加载javascript异步

 function script(url) {
        var scriptObject = document.createElement('script');
        scriptObject .type = 'text/javascript';
        scriptObject .async = true;
        scriptObject .src = url;
        document.getElementsByTagName('head')[0].appendChild(scriptObject );            
    }

答案 1 :(得分:2)

尝试jQuery.getScript功能。

答案 2 :(得分:0)

默认情况下,ajax调用的“cache”和“async”属性值为“true”,您不必再次指定默认值。

您提到加载文件需要一些时间,这可能是因为您尝试加载的脚本文件数量足够大。足够大,我的意思是超过50或100 kb。

为了减少文件加载所需的时间,您可以缩小js文件,这将有助于减少脚本的文件大小,并最终在ajax调用时加载更快。

http://jscompress.com是可用的优秀在线缩放器之一。

或者,您可以尝试使用requirejs库,该库广泛用于异步加载脚本文件。您可以从以下链接下载requirejs库: http://requirejs.org/docs/download.html