Sergio Pinna

Web Designer

Cancellare le richieste inutili al server

Eliminare le richieste inutili al server

Eliminare le richieste inutili al server, per rendere più scattante il proprio sito internet!

Per rendere un sito in WordPress il più veloce possibile l’espediente più importante in assoluto è:

ridurre al minimo le richieste dei file al server

Di per se è anche facile da intuire: sei al bar, meno richieste fai al barista, più il barista riuscirà a soddisfare le tue esigenze in minor tempo, maggiore richieste fai al barista (“vorrei un cappuccino, con caffè decaffeinato, in  un bicchiere e non in una tazza, mi raccomando il latte deve essere parzialmente scremato, né troppo caldo né troppo freddo, ..ok?”) più al barista  servirà del tempo per poter esaudire la tua ordinazione…

Una esemplificazione di come ridurre le richieste al server

Spiegherei cosa succede a WordPress con un esempio: poniamo che anche voi come me utilizzate il noto plugin per costruzione della form dei contatti Contact Form 7 (abbreviato in CF7).

Problema: nel sito utilizzo è che i file del plugin CF7 verranno caricate in tutte le pagine anche quelle che non usano il CF7.

Capite bene che è semplicemente una richiesta: in più, inutile, deleteria per il tempo di caricamento della pagina, e ultimamente sono venuto a conoscenza che Google penalizza le pagine che non tengano conto del tempo di caricamento della pagina.

Per non parlare della user experience: quando il tempo di caricamento della pagina supera i due secondi… le persone si annoiano (lo comprereste un televisione che impiega più di 2 secondi a cambiare canale? …penso proprio di no, appunto 🙂 !).

…insomma c’è da mettersi ai ripari…

Eliminare le richieste inutili al server

Torniamo al nostro esempio:

Caratteristiche necessarie

  • Scopo: avere le richieste dei file di CF7 solamente nella pagina contatti e non altre
  • Il plugin CF7 funziona solo e solamente nella pagina con il titolo “Contatti”

Soluzione: Ecco il codice che fa per noi (da copiare ed inserire nel file functions.php del tema padre o tema figlio che sia; se esiste il tema figlio il functions.php da modificare è quello del tema figlio):

– codice 1
/**
	Elimino richiami di file inutili
**/
add_action( 'wp_print_scripts', 'my_deregister_javascript', 900 );
function my_deregister_javascript() {
        // controllo di sicurezza: senza di questo il CF7 nin funzionerebbe lato Amministrazione
	if(is_admin()) {
		return;
	}
	// deregisto e deunifico i javascritp don id='contact-form-7' tutte le pagine che non siano la pagina con titolo "Contatti"
	if (!is_page('Contatti')) {
		wp_dequeue_script('contact-form-7');
		wp_deregister_script('contact-form-7');
	}
}

add_action('wp_print_styles', 'my_deregister_styles', 900);
function my_deregister_styles() {
        // controllo di sicurezza: senza di questo il CF7 nin funzionerebbe lato Amministrazione
	if(is_admin()) {
		return;
	}
        // deregisto e deunifico i css con id='contact-form-7' tutte le pagine che non siano la pagina con titolo "Contatti"
	if (!is_page('Contatti') ) {
		wp_dequeue_style('contact-form-7');
		wp_deregister_style('contact-form-7');
	}
}

Eliminare le richieste inutili su più pagine

Ma cosa fare se (stando all’esempio precedente) si avesse su più pagine il CF7?

Ci vengono in aiuto le operazioni logiche del PHP. In oche parole le operazioni logiche sono (fra le più usate):

  • && due “e ommerciali” per indicare una funzione logica “e”;
  • || due linee verticali (scrivibili con “shift + backslash”) per indicare la funziona logica “o”;

Poniamo che il CF7 io lo usi nelle pagine con titolo “Contatti” e “Chi sono”

Detto in italiano si direbbe “se le pagine non hanno come titolo Contatti e la pagina non ha come titolo neanche Chi sono, non effettuare la richiesta dei file js e css del plugin CF7”.

Che in PHP si scrive

L’essenziale del codice PHP è la riga

– codice 2
//se non è la pagina Contatti e non è la pagina Chi sono 
if (!is_page('Contatti') && !is_page('Chi sono')) {
    // non chiamare i file del plugin CF7
}

Dunque il codice dell’esempio precedente (codice 1) diviene così:

– codice 3
/**
    Elimino richiami di file inutili
**/
add_action( 'wp_print_scripts', 'my_deregister_javascript', 900 );
function my_deregister_javascript() {
        // controllo di sicurezza: senza di questo il CF7 nin funzionerebbe lato Amministrazione
    if(is_admin()) {
        return;
    }
    // deregisto e deunifico i javascritp don id='contact-form-7' tutte le pagine che non siano la pagina con titolo "Contatti"
    if (!is_page('Contatti') && !is_page('Chi sono')) {
        wp_dequeue_script('contact-form-7');
        wp_deregister_script('contact-form-7');
    }
}
 
add_action('wp_print_styles', 'my_deregister_styles', 900);
function my_deregister_styles() {
        // controllo di sicurezza: senza di questo il CF7 nin funzionerebbe lato Amministrazione
    if(is_admin()) {
        return;
    }
        // deregisto e deunifico i css con id='contact-form-7' tutte le pagine che non siano la pagina con titolo "Contatti"
    if (!is_page('Contatti') && !is_page('Chi sono')) {
        wp_dequeue_style('contact-form-7');
        wp_deregister_style('contact-form-7');
    }
}

Corollario

  • Ma se volessi entarre ancor più mello speicifico?
  • e come farei a trovare l’identificativo (id) per poter dire al file functions.php di non caricare la pagina?
  • e se volessi dire non di “non caricare il file js/css per quella pagina”, ma di caricaricarlo per tutte le altre per quella pagina?

Nel prossimo articolo troverete risposta a queste ed ad altre domande che vi son venute in mente…! 🙂

Come sempre se hai qualche domanda da pormi, dubbi, riflessioni, crititche o suggerimenti scrivilo pure nei commenti! Sarò ben lieto di poterti rispondere!

Se ti è piaciuto, Eliminare le richieste inutili al server, allora ti potrebbe piacere CF7 tipico per un risparmio di tempo e frustrazione

Fonte:
Conditional Tags

Condividi questo articolo