0

私はCouch dbリストビューに取り組んでいます。出力は、クライアントに適した構造を持つ json オブジェクトである必要があります。

現在、ビュー関数に送信される値のさまざまな要素から 1 つの複合文字列を作成しています。基本的に行うことは、関数が終了したときに後で返される結果文字列に部分文字列を追加することです。それは今のところ仕事をします。

ただし、リストビューには、リスト関数自体を終了せずに値を出力に送信する send() 関数もあります。

私が見ているのは、同じ問題に対する2つのアプローチであり、両方がまったく同じ出力を与える可能性があります。

  1. 意図した出力をすべて蓄積し、最後に戻ります。
  2. send() を使用して、プロセス全体が完了する前に各部分文字列を出力に送信します。

ソファがこれら2つを内部でどのように処理するかはわかりません。好ましいより効率的な方法はありますか?その場合、その理由は何ですか?

4

1 に答える 1

0

公式ドキュメントによると、次のコード テンプレートを使用する必要があります。

function(head, req) {
  var row;
  start({
    "headers": {
      "Content-Type": "text/html"
     }
  });
  while(row = getRow()) {
    send(row.value);
  }
}

ただし、これは常に意味があるとは限りません。たとえば、MD5 合計を計算する場合は、計算が終了したときにそれを返す方が快適です。

そのため、毎回決定を下す必要があります。

于 2013-11-04T16:41:16.287 に答える