以下是我的“指南”。请注意,这些都不是正式的,只是看起来应该这么做。
所有共享的JS代码都存放在`SITE/javascripts`目录中,但它们以“层次结构”方式加载。
对于整个站点的内容(例如jquery或我的站点宽应用程序.js),站点宽布局(这将是ASP.net中的主页面)包括文件。`script`标签放在页面顶部。
还有“区域范围”的内容(例如仅在网站管理部分需要的js代码)。这些区域要么有一个公共布局(然后可以包含脚本标记),要么会呈现一个公共部分,该部分可以包含脚本标记。
对于不太共享的内容(例如我只需要在一些地方使用的库),则在这些HTML页面中单独放置`script`标记。脚本标记放在页面顶部。
对于仅与单个页面相关的内容,我只需编写内联javascript。我尽量让它靠近它的“目标”。例如,如果我有一个按钮的onclick js,则`script`标记将位于按钮下方。
对于没有目标的内联JS(例如`onload`事件),它放在页面底部。
那么,如何将某些内容放入本地化库或站点宽库?
- 第一次需要时,请编写内联代码。
- 下次需要时,请将内联代码提取到本地化库中。
- 如果您从大约3个或更多地方引用了本地化库中的某些代码,请将代码提取到区域范围库中。
- 如果需要从多个区域访问它,请将其提取到站点宽库中。
对于这种系统的常见抱怨是,最终会得到10或20个小JS文件,而2或3个较大的JS文件从网络角度来看会更好。但是,Rails和ASP.NET都具有处理将多个JS文件组合和缓存为一个或多个“超级”js文件的功能,以用于生产环境。
我建议使用此类功能,而不是牺牲实际源代码的质量/可读性。