<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)(但个人认为不值得)是<script>
使用 JavaScript 创建一个标签并将其注入您的头脑中。如果这是在你的身体底部完成的,它应该希望你的 html/css 在你的异步加载器启动之前完全加载。
作为一个很好的奖励,require.js 允许你给你的主脚本一个指针,它会在 require 加载后加载。然后,您可以在主脚本中完成大部分异步文件加载,并根据页面上的要求为每个文件设置一组明确定义的要求。
异步加载 javascript 的原因包括
- 快速加载初始 HTML/CSS。
- 您的标题保持“干净”
- 您的 javascript 和 html 显然是分开的。
- 您可以根据特征检测动态加载文件。
- 您可以清楚地定义您的文件间依赖关系。
- 您可以以模块化方式(如 YUI)加载库,而不是加载整个库(如 jQuery)。
而这样的例子不胜枚举。在默认/共享视图或母版页中包含上述行非常干净整洁。
扩展基于特征检测的动态加载javascript文件。我的意思是你可以浏览应该加载 javascript 文件的 DOM。例如,如果您<ul class="image-slider">
的页面上有一个,那么您可以通过标准的 css 选择器检测到它并加载您的image-slider.js
文件以使用 JavaScript 不显眼地增强它。
这意味着您不必使用图像滑块手动将其包含在每个页面上。默认情况下,您不必在每个页面上都包含,您可以使用一条信息(类名)来应用视觉样式和功能。