在客户端的Dj​​ango模板渲染

时间:2013-11-11 13:13:59

标签: django django-templates

我有搜索结果页面的模板,通常如下所示:

{% for result in results %}
  // single result template
{% endfor %}

据我所知,当用户从浏览器请求此页面时,模板在服务器端呈现,然后html传输给用户。在我看来,通过只发送带有值的JSON并在客户端获取最终的html,可以减少流量。利润是由于没有为每个模板发送相同的html核心。

这有意义吗?这种优化有什么共同的解决方案吗?非常感谢。

1 个答案:

答案 0 :(得分:3)

是的,虽然不是Django股票的一部分。诸如Ember.jsAngularJs之类的框架在Javacript中执行此操作。这两者都是一个完整的模型视图控制器框架,它运行客户端。最终,Serverside可以简化为REST接口,将json传输到客户端。

这是一个极端的例子,我相信Ember.js可以很容易地与你网站的一小部分集成,这可能是你想要与django一起使用的。

如果django正在使用缓存中间件,那么对于大多数站点来说它不应该太低效,因为只有在数据发生变化时才会更新缓存,尽管生成动态搜索结果是一个很好的例子。 / p>

django模板系统非常有效。与大多数Web框架一样,在大多数情况下,在服务器上执行搜索时,服务请求所花费的大部分时间将用于查询数据库,尤其是在使用纯文本搜索时。因此,以模板渲染的形式优化服务请求的最后步骤,对于大多数情况来说可能不是一个值得优化的。

已经说过许多网站都在执行渲染客户端,并且它目前是框架开发的一个活跃领域。