我想了解KnockoutJS是否适用于我的应用程序。我的数据模型(简化的)是如下:knockoutjs的数据加载模式
function topic(data) {
this.id = data.id;
this.queries = ko.observableArray([]);
}
function query(data) {
this.id = data.id;
this.text = data.text;
this.searcher = data.searcherId;
this.postings = ko.observableArray([]);
}
function posting(data, query) {
this.documentId = data.docid;
this.rank = data.rank;
this.snippet = data.snippet;
this.score = data.score;
this.query = query;
this.document = null;
}
function document(data, topic) {
this.id = data.id;
this.url = data.url;
this.topic = topic;
}
对于给定的topic
,我具有一个或多个query
实例。每个查询都包含一个posting
实例的列表。每个posting
引用一个文档。只要posting
实例属于不同的query
实例,多于一个posting
可以指代给定的document
。
如果一个posting
引用了一个新文档(其中一个还没有被任何query
检索到),我想创建一个新实例;如果document
已经存在(id是唯一的),我想重新使用它。
我可以看到一些可能的替代方案以构建由服务器返回的JSON数据:
- 当序列化的贴子,第一序列的所有文件的清单,并与他们更新主文档列表。然后,发送带有文档ID参考的帖子。
- 将每个文档完全序列化为发布的属性,然后确定该条目是否多余。将非冗余条目添加到主列表中。
什么是序列化数据的合理模式?有没有一些映射插件魔术可以简洁表达?我可以控制生成JSON的服务器,并且可以以任何有意义的方式构建它。
感谢,
基因
基因,这个问题是相当宽泛和主观的。我不清楚我们可以客观回答哪些具体问题。 –
那么,我一直在寻找最佳实践方面的成语指导。我实施了战略#1,因为我可以控制服务器。 –