问题标签 [asynchronous-loader]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1605 浏览

javascript - 异步 javascript 加载器的推荐用法

刚开始研究异步 javascript 加载库,例如lab.jsscript.js。我的问题是关于使用这种异步加载模式的最佳实践。

我想到了几个可能的设置:

  1. 在顶部或带有脚本标签的页面加载异步加载器。这允许 gzipping 和缓存,但它也会在初始加载期间阻塞。这可能不是什么问题,因为这些加载器应该相当小(我们是否应该先加载 css)?

  2. 将异步加载器代码内联在您的 html 中,然后立即开始使用以加载依赖项。这意味着对异步加载器没有单独的请求,因此它可能会更快一些,但它也不会被压缩和缓存,因此每次都必须加载它。

  3. 在页面底部执行经典的 JS 加载,以便首先加载样式表等。将异步加载器放在页面底部的阻塞脚本标签中,然后异步加载所有依赖项。

最常用的场景是什么,人们通常如何异步加载他们的js?

0 投票
5 回答
7806 浏览

javascript - 如何有效地将 yepnope.js 与 $(document).ready() 一起使用?

我一直在将 yepnope 脚本加载器作为modernizr.js 库的一部分来实现。之后我成功地加载了 jQuery 和依赖于 jQuery 的脚本。我是异步加载资源的新手,所以对我来说有点新。我一直在四处寻找,但对以下内容没有太多运气。

我的问题是您对在使用 yepnope.js 框架时如何有效地替换 $(document).ready() 的功能有何看法。

我的理论是在我的基础库中创建一个适当命名的函数,然后在我的页面上将该变量设置为包含我现有的 $(document).ready() 代码的匿名函数。在完成回调中加载所有脚本之后,yepnope 将调用此变量。

您是否同意这是一种很好的方法,还是我完全以错误的方式接近它?

(对于那些不知道的人,yepnope.js 的异步特性意味着文档在 yepnope 加载程序完成之前调用 $ 或 jQuery,抛出“$ is undefined”错误<-如果有错误请纠正我。)

第一个问题,希望是个好问题。

0 投票
3 回答
902 浏览

javascript - 如果加载超时,LABJS 中是否有回调函数的规定?

我正在通过 LabJS 异步加载脚本,并且有一系列依赖脚本。现在如果链中的一个脚本中断(在某种意义上它无法下载,或者连接超时),我相信依赖链下的剩余脚本将不会被执行。在这种情况下,如果特定脚本无法加载,是否可以提供自定义回调函数以采取适当措施?如果 LabJS 无法做到这一点,是否可以使用任何其他异步脚本加载器?