ajax响应哪种方式更好?

时间:2017-03-11 20:53:33

标签: javascript php jquery ajax

我在思考如何设计对网站前端部分的响应 我想知道哪种解决方案以及为什么更好?

  1. 响应为html
  2. 响应为json
  3. 对于后端,我使用PHP和模板引擎TWIG。 到前端我使用jQuery。对于前端,我不使用任何模板引擎。

    我不会将模板引擎用于后端和前端,因为我将不得不复制模板。对我来说似乎是糟糕的解决方案或者也许我应该这样做?也许存在能够在两种情况下都使用它的模板引擎?

    请问我可以建议吗?

    英语不是我的母语,如果很难理解,那就很抱歉。我相信有人会知道我的意思:)。

2 个答案:

答案 0 :(得分:1)

在绝大多数情况下,JSON会“更好”。

  • 从服务器传输的信息会更小。 请考虑:<ul><li>john</li><li>clara</li><li>paul</li></ul> vs class UserProfile(models.Model): user = models.OneToOneField(User) # The base User model takes username, password and email # For the "paid services" you could use a boolean field and evaluate in your template premium = models.BooleanField() # Alternatively, a field that links to the services, which you'll have to include in your models.py account_type = models.ManyToManyField(Service)

  • 您的后端将更灵活地使用它,您将能够独立于后端更新您的前端标记。使用JavaScript比使用JSON更容易操作。

唯一的例外是如果你想隐藏用于从公众生成html的逻辑,但即使在这种情况下,我也赞成发送JSON以获得灵活性优势。

答案 1 :(得分:1)

没有更好的解决方案。我自己更喜欢所有的ajax调用返回JSON,因为我可以让前端决定如何处理它。这样我就可以保持关注点的分离。但就像我说的那样,这是个人喜好。输出HTML并不被认为是不好的做法。

我不确定你的后端模板和前端模板是什么意思。