Javascript 服务器端资源文件加载

Javascript 服务器端资源文件加载,javascript,css,django,design-patterns,Javascript,Css,Django,Design Patterns,这是反模式吗 对于Django项目中两个模板文件之间重复的JavaScript和/或CSS代码,我们将该代码放入公共资源中。然后,可以通过来自客户端的单独请求加载该资源(静态.js和.css文件就是这样),或者将其放入模板文件中并加载到服务器端使用它的模板中,从而避免由于创建额外的.js或.css文件(或增加现有.js或.css文件的大小)而产生的额外请求 目前我工作的地方更喜欢后一种方法,而我更喜欢前一种方法。在服务器端加载模板文件而不是创建其他静态文件或添加到现有静态文件时,我发现以下问题:

这是反模式吗

对于Django项目中两个模板文件之间重复的JavaScript和/或CSS代码,我们将该代码放入公共资源中。然后,可以通过来自客户端的单独请求加载该资源(静态.js和.css文件就是这样),或者将其放入模板文件中并加载到服务器端使用它的模板中,从而避免由于创建额外的.js或.css文件(或增加现有.js或.css文件的大小)而产生的额外请求

目前我工作的地方更喜欢后一种方法,而我更喜欢前一种方法。在服务器端加载模板文件而不是创建其他静态文件或添加到现有静态文件时,我发现以下问题:

  • 由于缓存的原因,我们通过在服务器上加载资源文件避免的请求数量微不足道
  • 模板的大小随着可以缓存的代码而增加,这意味着更多的数据通过网络发送
  • 这种做法将CSS和JavaScript代码传播到项目中标记为html模板的文件中,尽管它们完全没有实际的html文本
  • 当公共代码在我们站点的两个以上页面中变得常用时,我们可能需要创建其他静态文件(或添加到现有文件中)
  • 将JavaScript与DOM分开通常是一个很好的实践;服务器加载的资源文件对鼓励这种做法没有多大作用
那么,这是一种我们应该避免的反模式,还是一种最佳做法,以及原因呢?

我在这个问题上的意见是: 性能方面: 如果JS对您的登录页渲染很重要,请将其作为模板内联。 否则,我通常会投票支持您的方式(外部JS文件),可能使用异步,当然也会将链接放在页面的末尾。 但在某些情况下,如小脚本,内联方法是有意义的