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 数据模型中的计算属性不适用于 ember-cli-mirage 模型