Cambiare un sito centrato sul server con uno più JS centric [chiuso]

1

Prima di tutto, non sono davvero un ragazzo Javascript, ma più verso PHP.
Tuttavia, voglio passare al livello successivo, ovvero scaricare il server e lasciare che il client esegua l'elaborazione. Spero di essere un ragazzo più JS.

Il mio primo pensiero è quello di richiedere i dati dal server, e restituisce solo i valori-chiave che il client genererà l'HTML e il puck nei valori.

Ci sono 3 problemi in generale:

  1. Trovo molto più facile generare HTML in PHP perché lo scambio di dati tra server e HTML è fluido. Diversamente dai dati di ritorno in JSON, che poi devo selezionare il DOM che voglio e inserire i valori es. $('.personRecord').html(data['name']) .
    Trovo anche il looping attraverso gli array e la generazione di HTML più semplice di JS?

  2. Mi trovo ad usare così tanto selettore jQuery per selezionare l'elemento che sono interessato a manipolare e non sono sicuro che sia la pratica corretta (in futuro si tratta di un JS ninja). Ma lo sto facendo perché salva sicuramente molti personaggi.

  3. Per selezionare facilmente gli elementi, tendo a dare loro nomi di classi univoci come identificatori. Ancora una volta, non sono sicuro se questo è ciò che farà un JS Ninja.

Andando avanti (trend del web), vorrei sapere se dovrei provare a mettere più lavoro su JS?
Inoltre, qualche idea o idea su come posso superare i miei 3 problemi indicati sopra?
È un peccato restituire l'HTML formattato come parte di un valore JSON? O dovrebbe essere generato HTML in JS e solo i valori di lettura fuori dal JSON restituito quando è necessario?

Mettere da parte i framework (so che esistono Backbone, Angular, Can.JS e molti altri) qualcuno fa davvero script JS non elaborati? Voglio dire, è possibile ma sembra estremamente prolisso.

Infine, per favore, consigli su come convertire un sito centrato sul server in uno JS centrico?

Se quello che ho scritto non ha alcun senso, si spera che tu possa indicare alcuni siti JS centric e spiegare quale approccio stanno usando come esempio. Siti con funzionalità complete (ad esempio, forse Facebook, Twitter, StackOverflow) e non solo un'app Web TODO.

    
posta resting 03.04.2013 - 17:32
fonte

1 risposta

7
  1. jQuery è un fantastico strumento di manipolazione DOM. Quello che ho trovato è che è utile accoppiarlo con un buon strumento di template JavaScript ( Knockout.js è uno dei miei preferiti a causa del flusso di lavoro dichiarativo di binding di dati che utilizza) per fare esattamente la minima manipolazione di basso livello possibile. Detto questo, jQuery ha un fantastico ciclo di array con .each () .

  2. Il selettore è la pratica corretta per il recupero dei bit DOM da manipolare. Tuttavia, vorrei rimandare al n. 1 per come evitare di fare manipolazioni ripetitive.

  3. Le classi CSS dovrebbero essere applicate a gruppi o cose che potrebbero potenzialmente diventare gruppi. Se hai davvero bisogno di fare riferimento a un articolo direttamente, usa un ID. In genere è preferibile raggruppare le cose con le classi e raramente pensare in termini di manipolazione di un elemento preciso.

JavaScript non formattato (senza nemmeno jQuery, Prototype JS o MooTools) può essere scritto e può essere usato per manipolare il DOM. Raramente questo viene fatto in pratica a causa delle incompatibilità con l'implementazione del DOM che un buon framework nasconderà per te. Se scrivi JavaScript non elaborato, scoprirai rapidamente che stai spendendo una notevole quantità di tempo prezioso per lo sviluppo riscoprendo le incompatibilità JavaScript / DOM di oddball.

Per quanto riguarda come eseguire una tale conversione, ci sono due angoli da considerare: gestione del progetto e tecnologia. Dal primo punto di vista, probabilmente non vuoi fare qualche conversione all'ingrosso. Piuttosto, converti singoli pezzi mentre correggi bug o aumenta la loro funzionalità.

La domanda manca di dettagli sufficienti per fornire una buona risposta tecnica. Spostarsi verso un'architettura simile a MVC potrebbe essere utile. Ho trovato servizi Web, anche molto piccoli, estremamente utili in quanto mi permettono di pubblicare pagine abbastanza "stupide" (anche se sono presentate da qualcosa di meno stupido come ASP.NET) e ho il JS chiamato a il servizio per inserire dati ed eseguire operazioni.

Infine, potresti voler fare un passo indietro e chiediti perché stai provando a fare questa transizione. Migliori prestazioni? Migliore esperienza utente? Che problema risolve? Potrebbero esserci altre soluzioni al tuo problema immediato.

Ricorda che lo scripting lato client non è una panacea. Ci sono dei compromessi. Devi essere ancora più attento nella gestione dello scrub e della convalida dei dati (cosa che dovresti fare comunque) e assicurarti che sia il tuo codice lato client che quello server possano essere ripristinati in modo corretto dagli errori presentati dall'altro.

    
risposta data 03.04.2013 - 17:52
fonte

Leggi altre domande sui tag