2013-03-11 9 views
8

Ultimi 6 mesi sto sviluppando un componente Emberjs.Qual è il più grande problema di prestazioni in Emberjs?

Ho iniziato ad avere i primi problemi di prestazioni quando ho provato a sviluppare un componente di tabella. Ogni cella in questa tabella era Ember.View e ogni cella aveva un vincolo alla proprietà dell'oggetto. Quando il tavolo aveva 6 colonne e ho cercato di elencare circa 100 elementi, ha causato il blocco del browser per un po '. Così ho scoperto che è meglio scrivere una funzione che restituisca una stringa invece di usare i manubri e gestire i binding manualmente dagli osservatori.

Quindi, c'è qualche buona pratica su come utilizzare il minimo di associazioni? O come scrivere legature e non perdere un sacco di prestazioni. Ad esempio ... non utilizzare bindning per una grande quantità di dati?

Quanti oggetti Ember.View è possibile aggiungere alla pagina?

Grazie per la risposta

+0

Ecco una visualizzazione di brace ottimizzata per la visualizzazione di grandi quantità di dati riutilizzando elementi DOM: https://github.com/emberjs/list-view – CraigTeegarden

risposta

8

abbiamo un'applicazione che visualizza brace 100s di elementi complessi in una singola pagina. Ogni articolo utilizza associazioni manubrio predefinite per produrre circa una dozzina di proprietà. Rende molto velocemente (< 100 ms) e molto poco di quel tempo è dedicato alle associazioni.

Se si trova il browser sospeso a 6 colonne e 100 elementi, c'è sicuramente qualcos'altro che non va.

Quindi, c'è qualche buona pratica su come utilizzare il minimo di associazioni? O come scrivere legature e non perdere un sacco di prestazioni.

Prova a impostare Ember.LOG_BINDINGS = true per vedere cosa sta succedendo. Potrebbero essere le proprietà che si vincolano ad avere dipendenze circolari o costose da risolvere. Vedi questo post per grande suggerimenti su debug:

http://www.akshay.cc/blog/2013-02-22-debugging-ember-js-and-ember-data.html

quanti oggetti è possibile Ember.View accodamento alla pagina?

Non credo che ci sia un limite concreto, sicuramente dipenderà dal browser. Non prenderei in considerazione l'ottimizzazione a meno che non ci fossero più di qualche migliaio.

Partenza questo esempio per vedere come brace può essere ottimizzato per gestire tabelle molto grandi:

http://addepar.github.com/ember-table/

+0

Grazie mille per la risposta Mike. Il tavolo di legno mi ha mostrato che è davvero possibile visualizzare enormi quantità di registrazioni in un unico tavolo. E i tuoi consigli mi hanno aiutato a eseguire il debug dell'applicazione e ho scoperto che cos'è un problema reale. –

+4

Sarebbe bello se si condividesse il problema 'reale'! –

4

Erik Bryn recentemente ha tenuto un discorso su Ember.ListView che ridurre drasticamente il numero di punti di vista su una pagina riutilizzando le celle di lista che sono uscite dalla finestra.

Accoppiare questa tecnica con group-helper per ridurre il numero di tag di script metamorfosi se i modelli modellano più proprietà allo stesso tempo. Inoltre, considerare l'utilizzo di {{unbound}} se non si desidera alcuna delle proprietà per l'aggiornamento live.

Problemi correlati