2014-05-10 10 views

risposta

5

No, le viste sono non rigenerate purché la proprietà delle viste non venga modificata. CouchDB calcola un hash sulla proprietà views del documento di progettazione e usa questo hash come nome file della vista.

Utilizziamo questa funzione molto in produzione: aggiorniamo regolarmente i nostri documenti di progettazione e finché le viste non cambiano, le viste non vengono rigenerate.

BTW: Questo è anche il motivo per cui è possibile utilizzare i moduli CommonJS e require() nelle viste, ma si è limitati ai percorsi all'interno di views. Si può fare questo ad esempio:

{ 
    ... 
    "views": { 
    "lib": { 
     "underscore": "... (underscore.js here)" 
    }, 
    "my_view": { 
     "map": "function (doc) { var _ = require('views/lib/underscore'); emit(doc._id, _.pick(doc, 'name', 'address'); }" 
    } 
    } 
} 

Ma non si può usare un require come questo: var _ = require('underscore');

Spero che questo aiuti!

3

Sì. Come documentato in View API ("Altering/Changing Views" section) nel Wiki:

Per modificare una vista o vista multipla semplicemente modificare il documento di progettazione (vedi HttpDocumentApi) sono memorizzati in e salvarlo come una nuova revisione. Ciò causa la ricompilazione di tutte le viste in tale documento di progetto all'accesso successivo nel caso in cui il codice di visualizzazione sia stato modificato.

Nota la documentazione si riferisce all'aggiornamento del documento di progettazione non ai relativi campi.

Problemi correlati