javascript - 如何使用 javascript/jquery 加载资源 javascript 和 css 文件

标签 javascript jquery html

我正在处理的项目有很多 javascript 和 css 文件。我正在使用一个公司库,它通过使用类似这样的东西来处理资源文件的加载 require("相对文件名"). 但是对于某些页面,我不想使用这个库,而是想使用普通的 jQuery。 我不能使用脚本或样式标签来加载我的 javascript(因为我的内容在 iframe 中并且位于其他一些带有代理的页面中 - 所以所有 url 都在运行时计算)。 我只能使用 jQuery 和 Javascript 来加载这些文件。

现在我知道我可以使用

$.getScript( <myFileURL>, function( data, textStatus, jqxhr ) {
                  console.log( "Load was performed." );
                  if(jqxhr.status = 200){
                      //call another resource file?
                  }               
            });

唯一的问题是启动如此多的异步调用来加载资源 javascript 文件似乎有点矫枉过正。除非加载所有资源文件,否则无法继续处理。是否有任何其他方法可以一次加载所有资源文件,然后仅在加载后才继续处理页面。

编辑: 试过这个-

$.when($.getScript( <file1URL>),
               $.getScript( <file2URL>)).then(function(){
                customeFunction();// breakpoint here never gets hits.
          });

当我检查网络选项卡时 - 我可以看到文件已成功下载。但是 customFunction() 函数永远不会被调用。 谢谢

最佳答案

$.getScript返回 promise object ,所以你可以这样做:

$.when($.getScript( "file1.js"),
       $.getScript( "file2.js"),
       $.getScript( "file3.js")).then(function(){
     //Your code.
});

请求将在不等待前一个完成的情况下启动。加载所有脚本后,将调用 then 处理程序。

或者如果你有一个文件名数组:

files = ["one.js", "two.js", "three.js"];
promises = $.map(files, function(file){
    return $.getScript(file.valueOf());
});
$.when.apply($, promises).then(function(){});

关于javascript - 如何使用 javascript/jquery 加载资源 javascript 和 css 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18860315/

相关文章:

javascript - 有没有办法为提示的输入问题做一个 while 循环,绑定(bind)它们并在数组中提供所有答案?

html - 如何在部分流动的页面中获得固定的标题?

jquery - 如何使用标记创建范围 slider 并更改填充范围的颜色?

javascript - 如何在div中显示完整图像

jquery - Div Slide 在 Chrome/Safari 中无法正常工作

html - 仅使用 CSS 在其他元素上扩展图像填充

javascript - 多次转换路径

javascript - Webpack - extract-text-webpack-plugin 找不到模块

菜单项的 JavaScript 旋转在单击后卡住

javascript - jQuery绑定(bind)点击不添加元素