我在思考如何设计对网站前端部分的响应 我想知道哪种解决方案以及为什么更好?
对于后端,我使用PHP和模板引擎TWIG。 到前端我使用jQuery。对于前端,我不使用任何模板引擎。
我不会将模板引擎用于后端和前端,因为我将不得不复制模板。对我来说似乎是糟糕的解决方案或者也许我应该这样做?也许存在能够在两种情况下都使用它的模板引擎?
请问我可以建议吗?
英语不是我的母语,如果很难理解,那就很抱歉。我相信有人会知道我的意思:)。
答案 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并不被认为是不好的做法。
我不确定你的后端模板和前端模板是什么意思。