0

我有一个 js.js 脚本来处理我所有的 jQuery 函数。文件准备好后,我一一调用它们,如下所示:

function 1(){}
function 2(){}

jQuery(document).ready(function($){ 
    function 1();
    function 2();
});

我还有一个外部 javascript,我在我的网站标签中调用它:

<script type="text/javascript" src="myscript"></script>

这个脚本的问题是它从外部网站加载,有时速度很慢,拖慢了我的整个网站。

文件准备好后,我可以将它加载到我的 js.js 文件中吗?让我们在函数 2() 之前说?

有任何想法吗?

4

3 回答 3

6

您正在寻找$.getScript(url),它正是这样做的。

于 2013-02-24T22:06:25.000 回答
1

除了 SLaks 的答案,您可以使用一个库来组织您的 JavaScript 文件包含。如果您有许多文件和依赖项,它会很有用。

例如,看看head.js

head
  .js("jquery.js", "selectivizr.js") // these are loaded in parallel
  .js("jquery-ui.js"); // this is loaded after the scripts above

head.ready(function() {
  jQuery(document).ready(function($) { 
    function1();
    head.js("other-script.js", function() {
      function2();
      // your code
    });
  });
});

function 1(){}
function 2(){}

更好的解决方案是将所有 javascript 功能组织到单独的文件中,并仅使用 headjs 加载:

head
  .js("jquery.js", "selectivizr.js") // these are loaded in parallel
  .js("jquery-ui.js"); // this is loaded after the scripts above
  .js("app1.js"); // contains function1()
  .js("app2.js"); // contains function2()

head.ready(function() {
  jQuery(document).ready(function($) { 
    // your code
  });
});
于 2013-02-24T22:17:18.830 回答
0

首先,请务必将您<script type="text/javascript" src="myscript"></script>放在 html 页面的末尾,就在</body>结束标记之前。

此外,您可以使用RequireJS,这是一个允许您在需要时异步加载 js 文件的脚本,即使在整个页面加载后也是如此。您可以通过 Ajax 加载脚本并手动管理工作流程来自己完成,但我建议您改用这个强大的脚本。

于 2013-02-24T22:10:49.980 回答