2014-12-03 127 views
0

这是一种反模式吗?加载服务器端资源文件

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

目前我的工作习惯是喜欢后一种方法,而我更喜欢前者。我看到在服务器端,而不是创建额外的静态文件或添加到现有的静态文件与装载模板文件中的以下问题:

  • 在服务器上,我们避免请求通过加载资源文件的数量是微不足道的,由于缓存。
  • 模板的大小随着可缓存的代码的增加而增加,这意味着更多的数据通过线路发送。
  • 这种做法将CSS和JavaScript代码分散在标记为html模板的文件中,尽管它们完全缺乏实际的html文本。
  • 当通用代码在我们网站上的两个以上页面中常用时,我们可能需要创建额外的静态文件(或添加到现有的文件)。
  • 保持JavaScript与DOM分离通常是一种好的做法;服务器加载的资源文件对鼓励这种做法并没有多大作用。

那么,这是一种我们应该避免的反模式,还是最佳实践?为什么?

回答

1

我在这个问题上的2美分 性能明智: 如果JS对于着陆页渲染很重要,请将其内联为模板。 否则,我通常会为您的方式(外部JS文件)投票,也许使用异步,当然,将链接放在页面的末尾。 但是它有些像小尺寸脚本的情况,内联方法可能有意义。