Il mio widget statefull dovrebbe generare lo stesso html necessario?

0

Quale comportamento deve essere preferito per l'inizializzazione del widget:

1) L'HTML richiesto è generato dal widget stesso:

Layout:

<div id="my-widget"/>

L'inizializzazione:

$('#my-widget').myWidget(); // Creates HTML

2) L'HTML richiesto viene inserito nella pagina per utente:

<div id="my-widget">
  <div class="foo"/>
  <div class="bar"/>
</div>

L'inizializzazione:

$('#my-widget').myWidget(); // Won't create nested div's

Mark Otto (uno dei creatori di Bootstrap) suggerisce di non generare markup da javascript: link

Attualmente, utilizzo la seguente funzione, che aggiunge l'elemento alla radice del widget (questo. $ elemento) solo se non esiste:

function($content) {
  var $child = this.$element.children('.' + $content.attr('class'));
  return $child.length ? $child : $content.appendTo(this.$element);
};
    
posta Fred K 09.12.2013 - 18:39
fonte

1 risposta

0

Penso che dipenda da come userete il widget.

  • Genera tutto il codice html in javascript se il widget non è correlato alla pagina. L'uso di javascript handle rende il tuo widget autonomo e può essere facilmente integrato.

  • Scrivi il tuo html e aggiungi il comportamento con javascript, se il tuo widget è parte della tua pagina.

Non penso che ci sia un motivo per astenersi dal creare html in javascript. È una scelta di design che devi prendere. O prendi javascript come base o html.

L'approccio classico è prendere html come base, ma potresti anche creare tutto con javascript. Questo è quello che fai quando usi un framework come ExtJs: il file html normalmente ha un corpo vuoto.

D'altra parte sono pienamente d'accordo con l'argomento indicato nella guida alla codifica html che colleghi:

JavaScript generated markup

Writing markup in a javascript file makes the content harder to find, harder to edit, and less performant. Don't do it.

    
risposta data 09.12.2013 - 19:27
fonte

Leggi altre domande sui tag