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

Edmund Blackadder

Utente Attivo
327
171
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?
 

Moffetta88

Moderatore
Staff Forum
Utente Èlite
20,465
12,881
CPU
i5-4690
Dissipatore
DEEPCOOL CAPTAIN 240EX
Scheda Madre
MSI Z97 U3 PLUS
HDD
KINGSTON SSD KC400 240GB
RAM
24GB BALLISTIX SPORT @2133MHz
GPU
STRIX GTX980 DC2OC
Audio
INTEGRATA
Monitor
AOC G2590VXQ
PSU
BEQUIET! System Power 7 500W
Case
DEEPCOOL MATREXX 55
Periferiche
NESSUNA
Net
EOLO 100
OS
UBUNTU/WINDOWS11
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
 
  • Mi piace
Reazioni: Edmund Blackadder

Edmund Blackadder

Utente Attivo
327
171
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".
 

Moffetta88

Moderatore
Staff Forum
Utente Èlite
20,465
12,881
CPU
i5-4690
Dissipatore
DEEPCOOL CAPTAIN 240EX
Scheda Madre
MSI Z97 U3 PLUS
HDD
KINGSTON SSD KC400 240GB
RAM
24GB BALLISTIX SPORT @2133MHz
GPU
STRIX GTX980 DC2OC
Audio
INTEGRATA
Monitor
AOC G2590VXQ
PSU
BEQUIET! System Power 7 500W
Case
DEEPCOOL MATREXX 55
Periferiche
NESSUNA
Net
EOLO 100
OS
UBUNTU/WINDOWS11
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.
 
  • Mi piace
Reazioni: Edmund Blackadder

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!