2012-06-30 14 views
12

Sono nuovo nello sviluppo web e non capisco appieno il ruolo di un framework js in un'app. Ho iniziato con jQuery, ma le persone hanno detto che dovrei provare prototype.js o node.js per il mio progetto, che è un gioco di strategia multiplayer.Talvolta è necessario utilizzare più librerie javascript?

È importante selezionare un framework in anticipo e assicurarsi che faccia tutto il necessario per non dover utilizzare più framework?

+2

Queste sono cose diverse, è possibile utilizzare anche la maggior parte di esse. Nodo = javascript lato server, jQuery = stregoneria divina sotto forma di libreria JS che fa tutto ciò che potresti mai sognare. –

+1

Prototype.js è una cattiva idea (IMO) e sarebbe in conflitto con jQuery. node.js, d'altra parte, è lato server ed è completamente non correlato e sì, è possibile utilizzarlo. Probabilmente sarebbe adatto a questa situazione, perché ti consente di interagire con le prese piuttosto facilmente. – Ryan

+0

@minitech. quando dici "prototipo" e "jQuery", vuoi dire il simbolo "$"? perché non è davvero un "conflitto". – gdoron

risposta

9

Sono nuovo di sviluppo web e non comprendere appieno il ruolo di un quadro js gioca in un app

siete nuovi, ma siete fortunati!

Pochi anni fa gli sviluppatori hanno avuto davvero molto tempo a lavorare su problemi di browser in termini di CSS (ancora un po 'lì), gestione degli eventi, animazioni, manipolazione DOM. Dovevi scrivere codice differnet per ogni browser abbastanza spesso.

Le librerie JavaScript hanno preso vita e risolto il problema degli sviluppatori, fanno tutta la magia dietro le quinte e scrivono lo stesso codice (quasi sempre) per funzionare in ogni browser. In altre parole, le librerie JavaScript lo prendono da sole per risolvere i problemi relativi a più browser, fornendo un insieme coerente di funzioni da utilizzare per qualsiasi browser.

In generale, librerie JavaScript prendersi cura di questi o di fornire queste opzioni:

  • problemi cross-browser movimentazione
  • Animazione
  • finestre di dialogo personalizzate e widget
  • capacità di scrivere codice minore
  • Motore di selezione specifico
  • Creazione/Modifica di DOM
  • gestione degli eventi
  • Funzioni di utilità
  • AJAX

ho iniziato con jQuery, ma la gente ha detto che dovrei provare prototype.js o node.js per il mio progetto, che è un multiplayer gioco di strategia.

Essenzialmente fanno la stessa cosa (di cui sopra), sta a te decidere quale scegliere. Mi piace personalmente jQuery dato che è facile iniziare e ha un meccanismo di selezione CSS-Like.

Node.JS è una bestia completamente diversa, a differenza di jQuery o Prototype che si basa su JavaScript lato client, node.js è JavaScript sul lato server.

E 'importante scegliere un quadro nella fase iniziale, e fare in modo che fa tutto il necessario in modo da non dover utilizzare più quadri?

Non è importante a meno che non ne abbia bisogno, ad esempio in base alle proprie esigenze.Anche se personalmente ti suggerirei di leggere lo prima del codice JavaScript in modo che quando arrivi a una libreria JavaScript in un secondo momento, dovresti riuscire a crearne la maggior parte.

4

Il ruolo di un framework javascript è molto semplice: offrire un set di funzionalità di livello superiore in modo che sia possibile creare l'applicazione senza dover ricodificare le cose che sono state fatte prima e fornire una struttura per lo sviluppo. Si potrebbe pensare a jQuery o prototype.js come insiemi di funzioni che altre persone hanno trovato spesso devono essere scritte di nuovo e di nuovo in modo che l'abbiano già fatto per te. Cose come animare oggetti sullo schermo o unire e riorganizzare elementi nel DOM sono comuni a molte applicazioni, quindi questi framework e molti altri cercano di semplificare queste attività comuni. L'altra cosa bella è che hanno risolto i problemi più comuni per voi nel modo migliore per ogni piattaforma quindi non importa quale browser o telefono, si ottiene un'esperienza simile - questo non era il caso.

Node.js è qualcosa di diverso. È un linguaggio lato server (ovviamente la lingua è javascript) ma assume il ruolo di php o perl o python o ruby ​​(o il tuo lang lato server preferito) in quanto esegue effettivamente il codice per parlare con i database e recuperare le pagine sul server mentre gli altri eseguono normalmente il codice sulle macchine degli utenti nei browser.

Suggerirei solo la scelta di un unico quadro e di apprendimento bene (il mio voto personale è jQuery a causa della base larga sviluppatore, nice plugins, la buona documentation, e la comprensibilità del codice), ma dal momento che ciascuno di questi è javascript solo normale sotto il cofano, tutto ciò che non puoi fare in uno puoi fare il bridge con il javascript normale. Praticamente puoi fare qualsiasi cosa in ognuno di essi, solo alcune attività saranno più semplici in un quadro rispetto ad un altro. Quando si lavora con diversi, anche se potrebbero non essere in conflitto attivo, sarà un incubo per lo sviluppo.

Per la vostra applicazione particolare avrete bisogno sia di un front end che di un backend per farlo funzionare. Se l'app che stai cercando di costruire è un sito web, allora vai con uno di questi framework javascript ma se stai parlando di un'app mobile su Android o iPhone non hai bisogno di questi eventi.

+0

+1 Ben detto. E per l'OP, sì, dovresti scegliere un solo framework JS. Raccomando jQuery. –

+1

OP Non dovresti sceglierne uno solo - anche se jQuery può offrire un sacco di funzionalità di cui avrai mai bisogno - puoi combinare le strutture alle tue esigenze –

+1

Mentre puoi, direi che non dovresti. Dovrai ricordare non solo come usare ciascuno di essi, ma quando tornerai al tuo codice, mesi dopo, quali parti sono in quel quadro e che possono "funzionare insieme" facilmente poiché si trovano nello stesso quadro. Inoltre, se si hanno molti sviluppatori (o anche solo più di uno) si vuole davvero attenersi a uno in modo che possano lavorare facilmente. – hackartist

1

Proprio estendendo ciò che è stato messo in commenti e chiarire ciò che questi 'quadri' sono:

È possibile utilizzare il maggior numero di quadri che ti piace e che dovrebbero (se sono stati scritti bene) sia in conflitto con l'altro . Potrebbero esserci problemi con alcune librerie che assegnano a caratteri speciali come $ e poiché c'è una quantità limitata di caratteri speciali non già usati in javascript, questo è quasi inevitabile, ma di solito i framework più maturi lo hanno identificato e hanno scritto il lavoro attorno ad esempio jQuery.noConflict che riassegna sostanzialmente qualsiasi cosa stia usando $ prima.

Come per ogni quadro ci sono carichi e ciascuno ha il proprio particolare nicchia/API adatto ad una particolare programmazione necessità quali:

Sizzle (usato in jquery) - sintassi selettore Eccellente per maniuplating DOM

jQuery - eccellente architettura di plugin, API matura che fa un sacco di requisiti di programmazione comuni là fuori, componenti UI eccellenti se combinati con l'interfaccia utente jQuery

Handlebars.js - manipolazione dom basata su template + qualche altro MVVM piacevole (?)

Sproutcore.js, node.js ... ecc. Ecc. - avere una lettura su ciascuno e vedere a cosa si riferisce il framework.

È possibile unirli insieme: è possibile trovare conflitti occasionali che è necessario segnalare agli autori ma che non si sentono limitati a un framework.

1

È facile essere sconcertati dalla gamma di framework disponibili - in questi giorni può sembrare che uno nuovo entri nello zeitgeist ogni mese.

La chiave è utilizzare quelli che funzionano per voi e, soprattutto, capire che non tutti i framework e le librerie fanno la stessa cosa.

jQuery, ad esempio, è centrato attorno alla manipolazione DOM e AJAX. Sì, ha più sfaccettature, ma questi sono i suoi punti di forza. Confrontalo con, per esempio, Underscore.js, il che significa arricchire l'API a livello di dati per essere più simile a qualcosa come, per esempio, PHP. Dopo tutto, JavaScript ha un'API tradizionalmente limitativa rispetto a tali linguaggi (anche se è sempre più ricca con le versioni successive di ECMA e le API specifiche del fornitore).

Node.js, come hackartist menzionato nella sua risposta, è totalmente estraneo a entrambi i precedenti in quanto è lato server, non client.

Eviterei, in particolare nella fase iniziale, l'utilizzo di più librerie con un focus simile. Ti imbatti in progetti che vengono caricati sia nell'interfaccia utente di jQuery che, ad esempio, in extJS. Sì, questo ti dà più possibilità di giocare ma, vista la sovrapposizione, il vantaggio è compensato dall'impatto negativo sul peso del carico della tua pagina. Vai con quello a cui ti piace l'aspetto e, in modo cruciale, i cui documenti e community ti senti a tuo agio.

Infine, tenere a mente le librerie e le strutture non sono realmente la stessa cosa, anche se i termini spesso usati sono in qualche modo inavvertitamente intercambiabili. Sono entrambi JS sotto il cofano; una libreria è orientata verso la fornitura di funzioni e schemi che, almeno di solito, significano scrivere meno codice di quello che si farebbe se si facesse tutto in nativo, o "vanilla", JavaScript, mentre un framework si occupa della struttura di over-arcing del tuo codice e in che modo le varie parti riguardano o interagiscono.

+0

Grazie mille per le risposte tutti, queste spiegazioni sono eccellenti e ben dettagliate, ho una buona sensazione per come funziona ora. – RapsFan1981

Problemi correlati