javascript - JS脚本加载

标签 javascript jquery

我正在研究 js 脚本加载技术,并希望在加载所有内容/资源时显示自定义加载器。据我所知,下面是按顺序加载 js 脚本的工作,但是我的网络应用程序在启动后抛出了一些错误。

我的问题是:下面的脚本(在 HTML 底部的 jQuery 之后被称为 <script> )与简单地将所有这些 js 脚本称为 <script> 有何不同?是在 HTML 的头部吗?为什么一个出错而另一个出错?

$(document).ready(function(){
    jLoader(scripts[0]);
});
var i = 0;
function jLoader (script){
    return $.ajax({
                method: "GET",
                dataType: "script",
                url: script,
                context: document.body,
                cache:true,
        }).done(function() {
        console.log(script + ' loaded!');
        step();
        }
    });
}

function step(){
    i = i + 1;
    jLoader(scripts[i]);
}

var scripts = ['js/materialize.js','http://cdn.leafletjs.com/leaflet-0.7.5/leaflet.js','js/leaflet.awesome-markers.js',    
    'js/bouncemarker.js','https://cdn.firebase.com/js/client/2.3.1/firebase.js','js/geofire.min.js','js/myScript.js'];

最佳答案

step(); 后的右大括号过多

当您将变量定义放在顶部时,它应该可以工作::

var i = 0;
var scripts = ['http://cdn.leafletjs.com/leaflet-0.7.5/leaflet.js','https://cdn.firebase.com/js/client/2.3.1/firebase.js'];
$(document).ready(function(){
    jLoader(scripts[0]);
});

function jLoader (script){
    return $.ajax({
                method: "GET",
                dataType: "script",
                url: script,
                context: document.body,
                cache:true,
        }).done(function() {
        console.log(script + ' loaded!');
        step();
    });
}

function step(){
    i = i + 1;
    jLoader(scripts[i]);
}

至少在这里是这样:http://jsfiddle.net/adweqcm2/

但请记住:在生产环境中,建议连接脚本。

关于javascript - JS脚本加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33483808/

相关文章:

javascript - 通过类似工具提示的 div 传播 JavaScript 事件

javascript - 如何点击消失的对象

javascript - jQuery 根据正则表达式获取 css 属性

javascript - 如何确保指令的链接函数在 Controller 之前运行?

javascript - D3.js:x 轴,刻度之间的间隔可变

javascript - 如何在 JavaScript 中访问索引 id

Javascript 单选按钮适用于 FF 和 Chrome,但不适用于 IE

jquery - 从文本区域向段落添加换行符

javascript - 在带有背景图像的 Canvas 上书写

jQuery:在 IE 中动画不透明度