2013-10-18 10 views

risposta

6

Differenza

Beh, ci sono alcune differenze tra i due modi. In modo dichiarativo, tutta la configurazione è basata su attributi HTML come dojo-data-props ma anche altri attributi come il valore, il titolo, .... Quindi il nodo DOM che crei in realtà serve come una sorta di segnaposto.

Quando si creano widget scrivendo il codice JavaScript, sarà necessario fornire il nodo DOM a cui verrà applicato anche questo, ma la più grande differenza è che non copierà gli attributi HTML da quel nodo DOM. Il nodo DOM qui serve solo come contenitore, non come segnaposto.


preferita

Non esiste una soluzione che è per lo più preferito e di solito dipende dai requisiti della vostra applicazione e ciò che si pensa è il modo più pulito di sviluppo.

Personalmente mi piace il markup dichiarativo perché alla fine è una parte dell'interfaccia utente. Tuttavia, puoi andare quanto vuoi. Ho visto persone che creano negozi e gestori di eventi widget in modo dichiarativo, ma personalmente preferisco scriverli in JavaScript poiché non fanno parte dell'interfaccia utente.

Ci sono anche altri motivi che potrebbero cambiare il modo in cui si creerebbero i widget. Ad esempio, uno dei maggiori svantaggi del markup dichiarativo è che è necessario analizzare la pagina (ad esempio con parseOnLoad). Questo di solito è più lento rispetto alla creazione di widget a livello di programmazione. Puoi migliorarlo solo analizzando determinati nodi DOM, ma poi devi scrivere codice aggiuntivo (e non è ancora più veloce).

Solo una piccola nota; questo non significa che la via dichiarativa sia lenta. È solo un'operazione extra che dovrebbe essere eseguita e quindi, è un po 'più lento ma è probabile che l'utente finale non vedrà nemmeno la differenza.

Un vantaggio del modo dichiarativo tuttavia è che, quando si carica la pagina, l'utente finale è in grado di vedere il segnaposto. Se scegli il segnaposto giusto (ad esempio, uno <select> per dijit/form/FilteringSelect e dijit/form/ComboBox), l'utente finale vedrà almeno qualcosa. Se si crea tutto a livello di programmazione, l'utente finale visualizzerà una pagina vuota fino a quando non verrà eseguito il codice JavaScript.

Quindi, se le prestazioni sono uno dei requisiti, è possibile scegliere di crearli in modo programmatico. Se ti piace avere la separazione del codice in cui il livello di presentazione è separato dalla logica di business, allora consiglierei di usare il modo dichiarativo.

Ma alla fine entrambe le soluzioni sono buone.

Problemi correlati