KnockoutJSが自分のアプリケーションで動作するかどうかを理解しようとしています。与えられたtopic
については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;
}
は、私は1つのまたは複数のquery
インスタンスを持って次のように(簡体字)私のデータモデルがあります。各クエリには、posting
インスタンスのリストが含まれています。各posting
はドキュメントを参照します。複数のposting
はposting
インスタンスが別のquery
インスタンスに属している限り、与えられたdocument
を参照できます。
posting
が新しいドキュメント(まだquery
で検索されていないドキュメント)を参照している場合は、新しいインスタンスを作成したいと思います。 document
が既に存在する場合(IDは一意です)、私はそれを再利用したいと思います。
私は、サーバーから返されたJSONデータを構造化するためのいくつかの可能な選択肢を見ることができます:
- 投稿をシリアル化する場合、最初のすべての文書のリストをシリアル化し、それらをマスター文書のリストを更新。次に、文書IDへの参照を含む投稿を送信します。
- 各文書を投稿のプロパティとして完全にシリアライズし、そのエントリが重複しているかどうかを確認します。非冗長エントリをマスターリストに追加します。
データをシリアル化するための妥当なパターンは何ですか?これを簡潔に表現するマッピングプラグインの魔法がありますか?私はJSONを生成しているサーバーを制御し、それを意味するような方法で構造化することができます。
おかげで、
遺伝子
遺伝子、この質問はかなり広く主観的です。客観的に答えることができる具体的な質問が何であるかはわかりません。 –
まあ、ベストプラクティスのイディオムに関するガイダンスを探していました。私はサーバーを制御できるので、戦略#1を実装しました。 –