Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
依赖于顺序的异步Javascript文件_Javascript_Jquery_Twitter Bootstrap_Asynchronous_Pagespeed - Fatal编程技术网

依赖于顺序的异步Javascript文件

依赖于顺序的异步Javascript文件,javascript,jquery,twitter-bootstrap,asynchronous,pagespeed,Javascript,Jquery,Twitter Bootstrap,Asynchronous,Pagespeed,当使用来评估我的站点的性能时,我得到了70/100,建议我将jquery和bootstrap.js设置为异步,以提高性能 问题是异步脚本不能保证按指定顺序执行。我之前遇到过一个问题,即如果引导加载时未加载jquery,则展开导航栏菜单的按钮不起作用 我如何强制jquery在引导前加载,但仍能获得异步脚本的好处?基本上是说在加载页面之前执行Javascript,您可以将Javascript移动到html的底部(因此它将在页面呈现后执行)或者使用基本相同效果的defer属性 <script

当使用来评估我的站点的性能时,我得到了70/100,建议我将jquery和bootstrap.js设置为异步,以提高性能

问题是异步脚本不能保证按指定顺序执行。我之前遇到过一个问题,即如果引导加载时未加载jquery,则展开导航栏菜单的按钮不起作用


我如何强制jquery在引导前加载,但仍能获得异步脚本的好处?

基本上是说在加载页面之前执行Javascript,您可以将Javascript移动到html的底部(因此它将在页面呈现后执行)或者使用基本相同效果的defer属性

<script src="anything.js" defer></script> 

您可以用一个函数包装所有依赖jquery的代码。并设置一个间隔工作程序,该工作程序将检查是否已加载所有依赖项

var worker = function() {
  if(window.jQuery /* and other stuff */) {
    dependenciesLoaded(); /* your app wrapper */
  } else {
    setTimeout(worker, 30); 
  }
}; 

worker();

不过,这是一个相当肮脏的解决方案。期待将您的脚本捆绑到一个或多个具有依赖关系管理的库中。

您应该看看:。这将允许您调用每个页面所需的js文件,并且它已经是异步的

按照正确的顺序将它们连接到一个缩小的javascript文件中。这可以解决这个问题,不要只看requirejs——阅读本文:然后再看和