Ember 模型计算,服务器还是客户端?

Posted

技术标签:

【中文标题】Ember 模型计算,服务器还是客户端?【英文标题】:Ember model computation, server or client? 【发布时间】:2013-09-13 13:54:50 【问题描述】:

我有一个存储在服务器上的简单模型:

1.服务器型号(或夹具)

availableHours:[from,to,...]
holidays:[from, to,...]
sales:[from, to,...]

然而,在客户端,这变成了一个相当复杂的二维矩阵,显示时间重叠,基于用户选择的不同渲染,所以在我解析和计算后的客户端上,它看起来像这样:

2。客户端模型

[
[date:11/09, from:09:00, to:17:00, tags:['sales'],
date:11/10, from:09:00, to:17:00, tags:[]
],
//....
]

基本上是一个 2d 矩阵,一个时间跨度(从今天到用户选择的任何时间),我可以将它放在桌子上,一个类似于日历的 UI,它会随着模型的变化而自动呈现和更新。所以现在当我检索下一组数据(#1)时,我会在客户端计算它以生成客户端模型(#2)。

检查 Ember 文档(入门),似乎我必须在服务器上计算 #2 模型并将其发送到客户端。这似乎与原始数据一样具有开销,正如您所看到的,它要小得多,非常适合通过 Internet 发送。第二个数据更大,但非常适合渲染到表格中。

我应该在 ember 中将什么定义为我的模型结构,#1 或 #2?如果它是 #1,我如何计算并映射它以在用户进行更改时自动更改视图。

【问题讨论】:

【参考方案1】:

虽然您的帖子对我来说不是很清楚,但这是我的理解。

我更喜欢第一种方式,因为它更干净。

availableHours:[from,to,...]
holidays:[from, to,...]
sales:[from, to,...]

如何计算和映射它以在用户进行更改时自动更改视图。

正如您在帖子中所说,计算将发生在客户端retrieve 第二组data。您可以通过 valueBinding 属性将您的视图绑定到模型,该属性将在您的模型更改时自动更改您的视图。

您也可以使用computed properties 来监听模型中发生的变化

【讨论】:

我会调查这些。如果我将本地数据存储在固定装置中会怎样。然后重新计算和重建夹具?检查他们的示例并更改固定装置中的某些内容。 jsbin.com/oKuwomo/1/edit 我只是在想为什么您希望将响应存储在本地存储中或使用存储。以下是我的 GitHub 中的两个示例,可能会对您有所帮助... github.com/vinothbabu/emberjs-examples/tree/master/… github.com/vinothbabu/emberjs-examples/tree/master/… 我会尝试将问题拆分为更小的问题。这是一个:***.com/questions/18793522/…

以上是关于Ember 模型计算,服务器还是客户端?的主要内容,如果未能解决你的问题,请参考以下文章

不要使用Ember.js从服务器获取新数据

Ember.js 和玩!框架身份验证最佳实践

Ember 数据模型中的计算属性不适用于 ember-cli-mirage 模型

如何使用ember.js作为客户端与struts作为服务器端?

Ember 2 简单的多态关系

更改记录时,DS 模型记录上的 Ember 计算属性未触发