web - 服务器端还是客户端 {{mustache}}?

标签 web architecture mustache mustache.php

{{mustache}} 在我看来,是一个很棒的模板库。我面临的问题是在客户端还是在服务器端使用它。
我正在开发一个在线杂志,其主页将包含一篇大文章,其余文章在下方较小尺寸。
例如。

+-------------------------------------------------+
|                                                 |
|             Big Article Image                   |
|                                                 |
|                                                 |
+-------------------------------------------------+
     Title
     Author

+------------+     +------------+     +-----------+
|   Image    |     |   Image    |     |   Image   |
+------------+     +------------+     +-----------+
  Title               Title              Title
  Author              Author             Author
...

服务器端选项
使用 {{mustache}}在服务器端,作为 PHP 库:当浏览器请求页面时,服务器将完成模板并将其发送回。
优点:
  • 加载时间会更好。浏览器一旦收到 html 代码,就会知道它必须向服务器请求哪些其他资源。

  • 缺点:
  • 与客户端集成会很困难{{mustache}}因为在解析模板时,所有不匹配的“mustache-tags”都会被删除(我不知道这是否可以轻松干净地避免)。
  • 我不喜欢从服务器端修改接口(interface),我更喜欢从客户端修改,因此 3 层架构看起来更清晰(您可能对此有所不同)。
  • 我以前没有服务器端经验 {{mustache}} .

  • 客户端选项
    而不是普通的 {{mustache}}我一般用 ICanHas.js ,其中包含 {{mustache}}并使其非常简单和舒适:当浏览器请求页面时,HTML已发送,包含所有 js向服务器询问 JSON 的代码其中包含图像的标题、作者和文件名。
    优点:
  • 增强 3 层架构。
  • 无限滚动(其他 ajax 的东西)之类的东西添加起来非常简单。

  • 缺点:
  • 加载时间变差。浏览器需要接收代码,请求 JSON,然后向服务器请求在 JSON 中发现的资源。 (如图像文件名)。

  • 问题
    根据您的经验,您认为哪一个是最好的解决方案?为什么?

    最佳答案

    我想为您的优缺点补充几点。

    客户端模板比服务器端更容易出错

    使用各种浏览器、版本、设备和安全设置,事情很快就会变得一团糟。您在页面上拥有的 javascript 和客户端模板越多,您就越有可能让一些用户得到一个搞砸的页面。例如,想想 IE 默认的兼容性设置,很痛苦。使用服务器端模板,您只需检查一次即可。

    客户端模板通常比服务器端更难调试

    首先,当客户端在浏览器中出现错误时,您通常不会注意到它,除非您有一些报告系统。然后,您会收到一些神秘的单行错误消息。另一方面,在服务器端,您可以自动监控错误并在发生错误的地方提供良好的堆栈跟踪。 Sweet ...节省了大量时间。

    使用服务器端模板可能更好的 SEO

    机器人可以直接准确地解析静态或服务器生成的页面。对于充满客户端模板的页面,我真的不知道你会得到什么,因此索引可能会受到影响。

    服务器端模板加载时间更快

    特别是对于带有低端手机的手机,客户端模板可能会产生明显的差异。特别是如果您必须在页面加载后的第二步中获取数据。这些小型设备上的 Ajax + 渲染会增加一点延迟。在服务器端,另一端有缓存,你很快。

    也就是说,尽管有所有缺点,但客户端模板有其目的

    具有交互性和双向数据绑定(bind)的客户端模板规则

    通常对于以非常交互的方式读取/编辑/浏览数据的 RIA(富 Internet 应用程序)而言,客户端模板非常方便。它成为一个单页应用程序,其中页面是有状态的,并且页面的适当部分会使用相应的数据进行更新。缺点当然是这样的网站更难开发、维护并且更容易出错。

    关于web - 服务器端还是客户端 {{mustache}}?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22873473/

    相关文章:

    javascript - 网络应用程序-是否可以禁用 Windows+Printscreen?

    jsp - Struts/JSP/SQL 用户或管理员控制 (Tomcat)

    c# - 哪种软件设计模式最适合以下场景 (C#)

    ios - 缺少 64 位支持。应用商店提交错误

    python - pystache : render context inside lambda

    java - java servlet 中的 mustache 模板放置位置以及如何查找

    java - spullara mustache java 偏音

    Python SimpleHTTPServer 不断下降,我不知道为什么

    html - 如何在div的水平中心对齐图像并在其旁边设置图像?

    iphone - 避免数据丢失: suggested reading