Domanda

Ho un dubbio: - C'è qualche standard / convenzione che quando dovrei usare " Smarty templating " e quando dovrei usare le chiamate Javascript Ajax per produrre il contenuto? Posso usare le chiamate Ajax / Javascript per produrre dinamicamente il contenuto.

La mia applicazione utilizza sia Ajax che Smarty , ma voglio impostare una regola per gli sviluppatori

È stato utile?

Soluzione

Dovresti utilizzare solo chiamate AJAX per caricare dati dinamici che non sono noti al momento del caricamento della pagina . Ad esempio, quando fai clic su " commenti " collegamento per una determinata domanda / risposta su Stack Overflow, viene effettuata una chiamata AJAX per caricare dinamicamente i dati. Questo è il risultato dell'utente che fa clic sul collegamento dei commenti, non il risultato del caricamento della pagina. Non sai che dovresti mostrare questi commenti al momento del caricamento della pagina, quindi in questo caso è opportuno effettuare una chiamata AJAX.

Dovresti utilizzare il modello per mostrare tutti i dati noti al momento del caricamento della pagina . Semplifica la gestione di persone con Javascript disabilitato (lo so, non molto) e fornisce una chiara separazione della logica dalla presentazione. Un altro importante vantaggio dell'utilizzo del templating è il fatto che può ridurre significativamente il numero di richieste HTTP fatte dal browser del client.

Questo è particolarmente importante nel mondo della navigazione mobile in cui la latenza, non la larghezza di banda, è il tuo maggiore ostacolo. Nel Safari mobile, ad esempio, una singola richiesta HTTP a una pagina basata su Smarty verrà caricata in modo significativamente più veloce di una richiesta per caricare una pagina basata su JavaScript che effettua cinque o sei richieste HTTP aggiuntive. Ciò è particolarmente vero quando si utilizzano EDGE, 3G e altri servizi di dati mobili non wifi. In effetti, questo è così importante che è la prima linea guida in Best practice per accelerare il tuo sito Web .

Idealmente, dovresti anche degradare con garbo la funzionalità quando Javascript è disabilitato . Un buon esempio è una casella di ricerca che si completa automaticamente. È davvero bello aver suggerito che i termini di ricerca appaiano magicamente durante la digitazione, ma se disattivi Javascript, hai ancora una casella di ricerca funzionale. Questo è un classico esempio di un buon degrado nel servizio. Stack Overflow generalmente fa un ottimo lavoro fornendo una solida esperienza non Javascript. Un posto che manca è nei commenti. Quando Javascript è disabilitato, vengono visualizzati solo i commenti più popolari e la pubblicazione di nuovi commenti è disabilitata.

A meno che non sia assolutamente necessario, dovresti pensare a Javascript come una funzione bonus che potrebbe non essere abilitata, non come qualcosa che dovrebbe essere usato per costruire parti critiche del tuo sito web . Ci sono ovviamente delle eccezioni (alcune cose non possono essere fatte senza Javascript). Noterai, ad esempio, che Stack Overflow è molto utilizzabile con Javascript disattivato. Non riceverai gli aggiornamenti in tempo reale quando vengono pubblicate nuove risposte o fantasiose anteprime Markdown in tempo reale, ma la funzionalità principale è ancora lì. Tutto il "sollevamento pesante" è fatto con HTML e CSS. Javascript è solo la ciliegina sulla torta. Questa è una specie di nota a margine, ma è abbastanza importante da menzionare.

Altri suggerimenti

Probabilmente dipende dal tipo di lavoro che stai facendo nei tuoi template. Personalmente, odio fare molte cose di stile / layout rigorosamente rigorosamente in Javascript. Se riesci a caricare la maggior parte del layout tramite. Smarty e basta cambiare specifici bit di dati (solo i dati , non il markup / stile, se possibile) che potrebbero essere un buon punto di partenza per la standardizzazione all'interno del proprio team di sviluppatori.

Usa i modelli per la generazione lato server e DHTML / AJAX per qualsiasi cosa dopo il caricamento della pagina originale (non usando un aggiornamento). Anche in questo caso, la risposta del server per la chiamata AJAX stessa può essere assemblata con un modello, che può funzionare meglio per qualsiasi contenuto non banale.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top