【问题标题】:Django template rendering on the client side客户端的 Django 模板渲染
【发布时间】:2013-11-23 07:28:09
【问题描述】:

我有一个搜索结果页面的模板,一般看起来像这样:

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

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

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

【问题讨论】:

    标签: django django-templates


    【解决方案1】:

    是的,有,但不是作为 Django 的一部分。 Ember.jsAngularJs 等框架在 Javacript 中执行此操作。这两者都是运行客户端的完整模型视图控制器框架。最终,服务器端可以简单地简化为一个将 json 传输到客户端的 REST 接口。

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

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

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

    话虽如此,许多网站确实在客户端执行渲染,并且它目前是框架开发的一个活跃领域。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-13
      • 1970-01-01
      • 2018-04-11
      • 2022-07-22
      • 1970-01-01
      • 2011-07-26
      • 2015-08-21
      相关资源
      最近更新 更多