用于分割诸如backbone.js的库中的前端和后端逻辑的启发式算法

时间:2012-05-07 03:45:32

标签: backbone.js heuristics

我是学习MVC的新手。

我想知道是否存在一种启发式(非编程方式)用于划分和决定前端与后端相比的逻辑,特别是在使用像backbone.js这样的前端库时。 / p>

也就是说,像backbone.js这样的库将数据与DOM元素分开,这使得它可以用于创建复杂的客户端逻辑,这些逻辑可能曾经在服务器端执行。

提前致谢 乔伊

3 个答案:

答案 0 :(得分:2)

“经典”的方式做模型 - 视图 - 控制器是在服务器上拥有所有三个。然后,浏览器呈现HTML和一些JS的View层输出。

Rails就是一个很好的例子。

“新酷”方式是将浏览器视为主要计算引擎,后端服务器通过API提供services

在这种情况下,Model,View和Controller软件都在客户端上运行(如Javascript或coffeescript)。 Backbone通常是浏览器端解决方案的一部分,但它有诸如spine,angularJS等替代方案。

在后端服务器上,运行dbms和一个好的API系统。在Ruby / Rack上构建了一些很好的框架。请参阅Daniel Doubrovkine在code.dblock.org上发表的文章。您有很多选择。

MVC在客户端的优势

  • 用户的响应式用户界面
  • 酷Ajaxy单页效果
  • 单页网页应用程序可以比普通网站提供更快的用户界面
  • 良好的架构,用于构建iPhone / Android应用程序的启用程序
  • 根据应用程序的不同,可用于创建无需网络连接即可运行的独立Web应用程序。
  • 这是很多很酷的孩子们现在正在做的事情

<强>缺点

  • 需要决定旧浏览器,IE等的方法
  • 为搜索引擎提供内容可能会非常棘手。可能只需要针对搜索引擎的影子网站
  • 测试可能是一项挑战。但是看看像AngularJS这样的新库,包括可测试性焦点
  • 这种方法涉及更多软件:编写和测试需要更长时间。

<强>选择

这取决于你。决定取决于您的时间范围,资源,经验,需求等。不需要使用主干或类似。这样做是一种权衡(见上文)。不使用它总是更快/更容易,但没有它(或类似)可能无法实现您的目标。

您可以使用Rails构建一个出色的MVC应用程序,或者使用附加库或其他MVC解决方案构建PHP。

答案 1 :(得分:1)

我认为你在非程序化的意义上使用启发式这个词是正确的吗?即你用它来表示“经验法则”的某些内容吗?

根据经验:

  • 您希望服务器为UX和SEO原因呈现初始页面加载。
  • 出于同样的原因,您还可以让服务器呈现后续的AJAX部分页面加载。配置文件以查看哪个更快:让服务器渲染并传输额外的数据(标记)线上与发送更简洁的有效负载(使用JSON)并让客户端呈现它。有一些权衡,特别是如果你考虑到移动设备可能会在客户端上渲染速度较慢,但​​是那时移动设备的网络连接速度较慢......
  • 与任何客户端 - 服务器架构一样:您希望客户端执行需要在客户端上快速响应的事情,然后将一些异步操作发送到执行相同任务的服务器。

外卖是模糊的,但却是正确的:这完全取决于权衡,你必须决定你的产品需求是什么。

答案 2 :(得分:0)

我想到的前两件事是安全和安全。搜索..

  • 您始终希望限制服务器上的读/写访问权限。
  • 在大多数情况下,您希望您的搜索功能尽可能接近数据。