RISOLTO Cosa ne pensate di una chiamata AJAX al posto del PHP include?

Pubblicità

Edmund Blackadder

Utente Attivo
Messaggi
327
Reazioni
171
Punteggio
41
Stavo pensando ad un modo di gestire le parti statiche di un sito (header, nav, footer). Personalmente uso l'include del PHP ma non mi piace mischiare PHP e HTML. Leggendo in rete ci sono molte librerie ma se volessi una soluzione valilla c'è AJAX (questo codice è del sito che ho linkato):

HTML:
<body>
  <header></header>
  Content.
  <footer></footer>
</body>
JavaScript:
fetch("./header.html")
  .then(response => {
    return response.text()
  })
  .then(data => {
    document.querySelector("header").innerHTML = data;
  });

fetch("./footer.html")
  .then(response => {
    return response.text()
  })
  .then(data => {
    document.querySelector("footer").innerHTML = data;
  });

Cosa ne pensate di questa soluzione? Che svantaggi potrebbe portare?
 
Oddio, ajax lo uso per fare chiamate client al server senza aggiornare la pagina.
Non l'ho mai usato per "caricare" parti di pagina.
Vantaggi non so, ma di sicuro, essendo ajax di tipo async, c'è il rischio che la parte interessata venga caricata con ritardo.
Io per ora ho sempre usato il php include per il semplice fatto che tutte le pagine sono in php con parti prese o dalla $_SESSION , o dal $_POST/$_GET o addirittura da risultato di query.
Quel sistema strano di chiamare parti di html esterno, lo uso però on onsenui nello sviluppo di app, ma sono visti come "template" ed il codice base lo prevede ons-template
 
Quel sistema strano di chiamare parti di html esterno, lo uso però on onsenui nello sviluppo di app, ma sono visti come "template" ed il codice base lo prevede ons-template
Molto carino onsen non lo conoscevo, potrebbe essere ottimo il template in quanto alla fine l'obbiettivo è non ripetere codice.

Vantaggi non so, ma di sicuro, essendo ajax di tipo async, c'è il rischio che la parte interessata venga caricata con ritardo.
Quello che temevo ma mi è venuto in mente che si potrebbe disabilitare la richiesta asincrona:
JavaScript:
xhttp.open("GET", "template.html", false);
Certo, così diventa una richiesta "normale".
 
AJAX = Asynchronous JavaScript And XML
Capisci che se vai di AJAX e disattivi il fattore di Async non è proprio il top :patpat: Cioè, nasce per essere Async e tu lo fai diventare Sync :asd:
Purtroppo anche la funzione di jQuery .load(), è anch'essa Async.

Unico modo è dare il async: false quando fai la chiamata ajax, in alternativa fai include() con php che vai sul sicuro.
 
Pubblicità
Pubblicità
Indietro
Top