我想了解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,因爲我可以控制服務器。 –