Source: http://blog.merlinox.com/disqus-onloa/?replytocom=12257
Timestamp: 2018-02-20 21:16:15+00:00

Document:
﻿ Toglie il peso di Disqus dalla pagina | Merlinox's Blog
Toglie il peso di Disqus dalla pagina
Scritto il 19/05/2010 da Merlinox in Web Programming
Sei un fan di Disqus, il sistema in integrazione dei commenti, ma noti che rallentano molto il caricamento della tua pagina e temi per Google? Da alcuni esperimenti che ho fatto, ho notato che Google vede solo la roba che viene presentata in prima battuta in lettura, ovvero solo i contenuti sincroni.
La pagina – per Google – è caricata al momento in cui tutto ciò che è definito "In linea" nell'HTML è caricato. Questo comprende tutto il testo, gli script inglobati, le immagini, i CSS interni ed esterni ed anche gli script.
Quello però che non vede / attende sono le chiamate asincrone, ovvero quelle chiamate che avvengono dopo il caricamento della pagina. Non ci resta quindi che caricare Disqus alla fine del caricamente della pagina, ovvero all'onload della pagina.
Nota bene: se usate già l'onload in pagina, o altri metodi per multionload, sostituite la riga:
window.onload = function(){loadDisqus();}
Con la vostra metodologia di chiamata onload.
Script per la Disqus Tumblr version
Il vecchio script d
apri il tuo template e verifica se la roba di disqus ce l'hai tra {block:Permalink} e {/block:Permalink}
sostituisci alla chiamata base del primo script
<script type="text/javascript" src="http://disqus.com/forums/IlTuoId/embed.js"></script>
lo script con le funzioni loadDisqus e loadDisqusReplies
rimuovi in toto l'ultimo <script …></script> di Disqus, quello tra CDATA
<!-- commenti di disqus.com -->
<!--<script type="text/javascript" src="http://disqus.com/forums/IlTuoId/embed.js"></script>-->
function loadDisqus(){
newScript.src = 'http://disqus.com/forums/IlTuoId/embed.js';
newScript.onload = loadDisqusReplies;
function loadDisqusReplies() {
//document.write('<script type="text/javascript" src="http://disqus.com/forums/IlTuoId/get_num_replies.js' + query + '"></' + 'script>');
newScript.src = 'http://disqus.com/forums/IlTuoId/get_num_replies.js' + query;
//versione senza jquery e senza altri onload
<!-- commenti di disqus.com (fine) -->
Script per la nuova versione di Disqus
Lo script nuovo / standard è simile a questo:
<script type="text/javascript" src="http://disqus.com/forums/IlTuoId/combination_widget.js?num_items=5&hide_mods=0&color=blue&default_tab=people&excerpt_length=200"></script>
<a href="http://disqus.com/">Powered by Disqus</a>
Ovviamente compresso in una unica linea. Sostituite tutto quanto con:
newScript.src = "http://disqus.com/forums/IlTuoId/combination_widget.js?num_items=5&hide_mods=0&color=blue&default_tab=people&excerpt_length=200";
Per la stesura di questo articolo ho usato questi riferimenti online: Dynamically insert javascript e javascript beutifer. Grazie a Davide Nonino per la domanda. L'immagine invece è un omaggio all'amico Spippolazione alle prese con errori VMWare.
Pubblicato il 19/05/2010 in Web Programming (commenti, disqus, javascript)
21 pensieri su “Toglie il peso di Disqus dalla pagina”
davide 19/05/2010 alle 15:38
grazie Merlinox!!! professionale allo stato puro!!! Visto che Google considera sempre più il fattore page speed e soprattutto indica nel mio webmaster tools Disqus come il colpevole… beh… è una cosa da farsi!!!
spippolazione 19/05/2010 alle 15:50
Merlinox Autore articolo 19/05/2010 alle 16:00
@davide: mi ha fatto piacere
@spippolazione: sapevo che apprezzavi
Pingback: Tweets that mention Toglie il peso di Disqus dalla pagina -- Topsy.com
Giuseppe D'Elia 20/05/2010 alle 15:12
In effetti disqus è di piombo…
complimenti per l’articolo merlinox, anche se mi ci vorrà un pò per capire come risolvere la cosa… ^_^”
Merlinox Autore articolo 20/05/2010 alle 15:30
Guarda Giuseppe è una cavolata: 4 smartellate di javascript. Alla fine ho solo spostato il “Momento” in cui viene incluso il .js 🙂
Giuseppe D'Elia 20/05/2010 alle 15:39
non mi è molto chiaro in che punto sostituire cosa…. ^_^”
Merlinox Autore articolo 20/05/2010 alle 15:40
dipende da quale dei due script presentati devi fare le modifiche. cmq se non è chiaro dimmi pure che vedo di migliorare il testo.
Giuseppe D'Elia 20/05/2010 alle 17:33
sembra una cosa solo per tumblr…
io uso il plug-in di disqus ed è forse questo il problema perché non ho proprio la minima idea di dove sostituire questo codice ^_^”
anche considerando che usando il plugin il tutto viene automaticamente caricato con il classico di wp.
si parla d’altro? 🙂
Giuseppe D'Elia 20/05/2010 alle 19:08
approfitto anche per dirti che il permalink di questa pagina è (immagino accidentalmente) sbagliato:
http://blog.merlinox.com/disqus-onloa/
Merlinox Autore articolo 20/05/2010 alle 22:29
Chiaramente se usi un plugin per wordpress è un po’ un casino: il plugin è necessario per la sincronizzazione dei commenti. Comunque alla fine si potrebbe cambiare pure quello. Tanto quello che cambia è solo la chiamata dei js esterni!
Giuseppe D'Elia 21/05/2010 alle 00:01
Immaginavo che si parlasse nel caso del non utilizzo del plugin altrimenti non avevo capito nulla. In effetti si il plugin è necessario per wordpress… inizialmente pensavo che si potesse adottare il codice e moderare dal sito di disqus, però poi sorge il problema che i commenti molto probabilmente son solo in disqus e non vengono registrati nel blog…. questo non va! 🙂
comunque, grazie dell’esauriente spiegazione! 🙂
ottimo articolo M. 🙂
Merlinox Autore articolo 21/05/2010 alle 00:13
Per curiosità, dopo aver fatto una copia, nel plugin cercati dove vengono chiamati i js esterni. Non dovrebbe essere un problema (specie se è un .js solo) modificarne lo script.
Il difetto più grande di questa struttura – purtroppo – è che l’onload riceve solo una function. Quindi se nel tuo sito c’è già qualcosa in onload bisogna gestire un multi onload.
Giuseppe D'Elia 21/05/2010 alle 06:52
Allora, (se ho ben capito) sono andato nell’editor del plug-in e c’è solo un file .js per disqus : disqus-comment-system/scripts/manage.js
parte così: var dsq_old_onload = window.onload;
e c’è scritto onload ovunque…
spiegami che vuoi sapere ^_^”
Merlinox Autore articolo 21/05/2010 alle 09:29
Guarda dovrei vedere. se lo script parte buttando nel codice un “” significa che è nel “runtime” della pagina, quindi sincrono.
Altrimenti significa che parte all’onload, come questa soluzione, e sei già apposto.
Cmq se controlli con le resource dell’inspector di chrome dovresti vederlo!
Giuseppe D'Elia 21/05/2010 alle 09:50
sotto il disqus post ce ne sono 3 di script il primo sembra quello di apertura del thread con il link del post, il secondo quello del trackbacks e il terzo….
non ne ho la più pallida idea… ^_^”
quale guardo?
Merlinox Autore articolo 21/05/2010 alle 10:01
Amico @Giuseppe D’Elia mi ha scambiato per un callcenter? La tecnica è fare partire il primo in onload e gli altri a cascata, come ho fatto io nel primo esempio. Ora come ora però non ce la faccio proprio a verificarlo.
Giuseppe D'Elia 21/05/2010 alle 10:09
ah ah ah Tranquillo! 🙂
e scusa, commentavo perché vedevo arrivare una soluzione.
quando e se avrai tempo di farlo magari scrivilo, e aiuterai chi come me ci ha capito poco! ^_^”
ciao Merlinox, e grazie per il tempo che mi hai dedicato! 😉
Merlinox Autore articolo 21/05/2010 alle 10:16
Guarda ultimamente scrivo pure poco qui. Quello che posto è sempre più spesso una “rappresentazione” del quotidiano 🙂
Giuseppe D'Elia 21/05/2010 alle 10:33
è un argomento molto interessante, mi dilungavo per questo, disqus è molto usato e saperne di più come migliorarlo (in velocità specialmente) è senz’altro utile considerando le esigenze del web di oggi! 🙂

References: articolo 19
 articolo 20
 articolo 20
 articolo 20
 articolo 21
 articolo 21
 articolo 21
 articolo 21