异步javascript加载程序的推荐用法
刚刚开始研究异步javascript加载lib,如和。我的问题是关于使用这种异步加载模式的最佳实践 我想到了几个可能的设置:异步javascript加载程序的推荐用法,javascript,dependency-management,asynchronous-loader,Javascript,Dependency Management,Asynchronous Loader,刚刚开始研究异步javascript加载lib,如和。我的问题是关于使用这种异步加载模式的最佳实践 我想到了几个可能的设置: 加载顶部的异步加载程序或带有脚本标记的页面。这允许gzip和缓存,但也会在初始加载期间阻塞。这可能不是什么大问题,因为这些加载程序应该相当小(我们还是应该先加载css吗) 将异步加载程序代码内联到html中,然后立即开始使用加载依赖项。这意味着异步加载程序没有单独的请求,因此可能会更快一些,但它也不会被gzip压缩和缓存,因此每次都必须加载 在页面底部进行JS的经典加载,
<head>
<!-- data-main attribute tells require.js to load
scripts/main.js after require.js loads. -->
<script data-main="scripts/main" src="scripts/require.js"></script>
</head>
我建议(1)您将其加载到头部
在html(2)中串联它是不值得的,因为它会停止缓存。更不用说你必须把它放在任何地方,而且它很难看
一个有效的选择(3)(但个人不值得)是使用JavaScript创建一个
标记并将其注入您的大脑。如果这是在你的身体底部完成的,那么在你的异步加载程序开始之前,它应该能让你的html/css完全加载
作为一个不错的奖励,require.js允许您提供一个指向主脚本的指针,一旦require被加载,它就会加载该脚本。然后,您可以在主脚本中执行大部分异步文件加载,并根据页面上的要求为每个文件设置一组定义良好的要求
异步加载javascript的原因包括
- 快速加载初始HTML/CSS李>
- 你的标题保持“干净”
- 您的javascript和html是明确分开的
- 可以基于特征检测动态加载文件
- 您可以清楚地定义文件间的依赖关系
- 您可以以模块化的方式(如YUI)加载库,而不是加载整个库(如jQuery)
,那么您可以通过标准css选择器检测到它,并加载image slider.js
文件,以不引人注目地使用JavaScript增强它
这意味着您不必使用图像滑块手动将其包含在每个页面上。默认情况下,您不必在每个页面上都包含,您可以使用一条信息(类名)来应用视觉样式和功能。
我建议(1)您将其加载到头部
在html(2)中串联它是不值得的,因为它会停止缓存。更不用说你必须把它放在任何地方,而且它很难看
一个有效的选择(3)(但个人不值得)是使用JavaScript创建一个
标记并将其注入您的大脑。如果这是在你的身体底部完成的,那么在你的异步加载程序开始之前,它应该能让你的html/css完全加载
作为一个不错的奖励,require.js允许您提供一个指向主脚本的指针,一旦require被加载,它就会加载该脚本。然后,您可以在主脚本中执行大部分异步文件加载,并根据页面上的要求为每个文件设置一组定义良好的要求
异步加载javascript的原因包括
- 快速加载初始HTML/CSS李>
- 你的标题保持“干净”
- 您的javascript和html是明确分开的
- 可以基于特征检测动态加载文件
- 您可以清楚地定义文件间的依赖关系
- 您可以以模块化的方式(如YUI)加载库,而不是加载整个库(如jQuery)
,那么您可以通过标准css选择器检测到它,并加载image slider.js
文件,以不引人注目地使用JavaScript增强它
这意味着您不必使用图像滑块手动将其包含在每个页面上。默认情况下,您不必在每个页面上都包含,您可以使用一条信息(类名)来应用视觉样式和功能。不要对yepnope.js迷惑不解-我个人的最爱,我的yepnope就在结束正文标记之前-我猜这就是您的情况2,最适合我。别忘了yepnope.js-我个人最喜欢的,我的yepnope就在结束body标签之前-我猜这是你的案例2,最适合我。