Generazione di elementi di presentazione con Javascript vs PHP

1

Quali sono i pro e i contro della generazione di pagine dinamiche con javascript vs eseguendolo in PHP?

Ad esempio, voglio visualizzare determinati record da alcuni database in una tabella e sto considerando i seguenti approcci:

  1. Utilizza Javascript per ottenere una risposta in JSON da qualche pagina PHP, quindi crea dinamicamente la tabella in Javascript.
  2. Scrivi un po 'di PHP nella pagina che farà la query e itererà attraverso il set di risultati facendo eco al markup della tabella.

Quali sono i pro e i contro di ciascun approccio?

    
posta Daniel 23.12.2011 - 00:30
fonte

3 risposte

1

In genere è meglio che il tuo sito sia in grado di generare tutto il contenuto lato server. I bot potrebbero non implementare Javascript e se ci sono contenuti che possono essere mostrati solo usando JS, potresti finire con contenuti non indicizzati dai motori di ricerca.

Se questa è una preoccupazione per il tuo sito, implementerei tutto il rendering dei contenuti lato server e assicurarmi che tutto il contenuto abbia un URL che può essere raggiunto e reso senza Javascript.

Quindi, se vuoi usare Javascript, puoi riutilizzare la programmazione lato server; o usa Javascript per recuperare l'HTML (completo o frammentato) che viene generato lato server e lo butto giù sulla pagina. Se stai usando MVC o qualcosa di simile, potresti essere in grado di ottenere facilmente il Modello in formato JSON e fare anche il materiale View in Javascript.

Se il tuo sito non è interessato alla scansione, non vuoi che i tuoi contenuti siano accessibili da URL, ecc. (ovvero il tuo sito non è davvero un sito web ), sentiti libero di fare tutto JS (cioè GMail non è un "sito web", è un'applicazione, quindi non è strano che sia principalmente JS).

    
risposta data 23.12.2011 - 12:30
fonte
0

A parità di condizioni, vai con l'opzione più semplice.

L'opzione 1 richiede l'esportazione dei dati PHP in JSON, il caricamento attraverso una chiamata AJAX, l'iterazione e il rendering con JavaScript.

L'opzione 2 richiede solo iterare su un array PHP, non è necessario JavaScript.

La bellezza di ajax è che puoi caricare i dati in modo asincrono senza ricaricare la pagina, il lato negativo è che è più utile per te e non funzionerà correttamente in ogni browser (o per qualsiasi utente con JavaScript deliberatamente disabilitato).

    
risposta data 23.12.2011 - 08:53
fonte
-2

PHP è reso sul server.

JavaScript è reso sul client.

PHP può trarre vantaggio diretto da tutti i comandi, script, programmi, database (ecc.) disponibili sul server.

JavaScript non può lanciare comandi, script o programmi sul computer del client, né può accedere ai database (non direttamente - ha bisogno dei dati restituiti in qualche modo).

Credo che JavaScript sia a volte un modo goffo per programmare la logica aziendale, poiché è molto difficile isolare la logica della presentazione dalla logica aziendale.

D'altra parte puoi facilmente isolare la logica di business e la logica di presentazione usando PHP come linguaggio di back-end e JavaScript come ausilio per la presentazione (front-end).

Perché non usare entrambi?

Elimina il maggior numero possibile di "back-end" usando PHP, quindi "aggiusta" eventuali problemi di presentazione usando CSS + JavaScript.

Il meglio di entrambi i mondi ...

    
risposta data 23.12.2011 - 01:17
fonte

Leggi altre domande sui tag