Sto creando un'applicazione basata sul Web (ad esempio JavaScript con jQuery e molto SVG) in cui l'utente interagisce con "oggetti" sullo schermo (pensa ai DIV che possono essere trascinati, ridimensionati e connessi da array - come un vettore programma di disegno o un linguaggio di programmazione grafica).Dove posizionare oggetti interattivi in JavaScript?
Poiché ogni "oggetto" contiene informazioni individuali ma è sempre appartenente a una "classe" di elementi è ovvio che questa applicazione deve essere programmata utilizzando un approccio OOP.
Ma dove memorizzo meglio gli "oggetti"?
- Devo creare una struttura globale ("Registro") con tutti i nativi (JS) oggetti e dire loro "disegnare se stessi sul DOM"?
- O dovrei evitare una simile struttura e pensare ai nodi DOM (rilevanti) come ai miei oggetti e collegare loro i dati rilevanti come .data()?
Il primo approccio è molto MVC, ma suppongo che l'allegato di tutti i gestori di eventi non sia banale.
Il secondo approccio gestirà gli eventi in modo semplice e non crea una struttura duplicata, ma suppongo che le solite cose OO (come i metodi) saranno più complesse.
Che cosa consigli? Penso che la risposta sarà specifica per JavaScript e SVG in quanto i "soliti" linguaggi di programmazione non hanno una "tela" di output così organizzata.
Aspetterò le risposte perché questa domanda è IMO molto interessante ... ma perché hai scelto SVG invece di andare su tela e un approccio più "tradizionale" del semplice fatto che gli oggetti si disegnassero sulla tela? – 6502
Ho scelto SVG su Canvas perché i miei dati sono vettoriali e non di tipo pixel. E, ancora più importante, sto usando gli eventi JavaScript (MouseDown, MouseMove, ...) un sacco e come io possa legarsi agli elementi SVG sto scaricando il "rilevamento delle collisioni" per l'implementazione nativa del browser e don 't hanno a che fare io stesso a (potenzialmente lento) JavaScript – Chris