Pubblicato il 24/05/10 - aggiornato il  | 22 commenti :

Metodo per inserire i plugin di Facebook in modo asincrono per aumentare la velocità di caricamento del blog.

Questo articolo è un completamento dei post che ho dedicato all'argomento e vuole presentare un metodo alternativo per inserire alcuni plugin di Facebook nel nostro blog. Ricordo alcuni post che ho scritto su questo tema
  1. Come inserire il Like Box della pagina fan -
  2. Come installare il widget degli Articoli Consigliati -
  3. Come installare Activity Feed, il gadget delle Attività Recenti su Facebook -
In tutti e tre questi articoli ho precisato che si poteva installare l'iFrame copiando la prima parte del codice oppure poteva essere copiata la seconda parte del codice a patto di modificare il modello.
Questa seconda opzione può risultare interessante per una maggiore velocità di caricamento del widget e, nel caso se ne inserisca più di uno, per una maggiore semplicità. Il procedimento di installazione si basa sui Tag XFBML che è uno strumento di Facebook messo a disposizione degli sviluppatori.
Per un blog su Blogger si va su Layout > Modifica HTML e si salva il modello completo. Si espandono i modelli widget e si cerca la riga </body>; è facile trovarla perché è in fondo al modello (la penultima per l'esattezza). Immediatamente sopra a questa riga si incolla il codice 
<!-- FACEBOOK SDK INIZIO -->
<div id='fb-root'/>
<script>
  window.fbAsyncInit = function() {
    FB.init({appId: &#39;your app id&#39;, status: true, cookie: true,
             xfbml: true});
  };
  (function() {
    var e = document.createElement(&#39;script&#39;); e.async = true;
    e.src = document.location.protocol +
      &#39;//connect.facebook.net/it_IT/all.js&#39;;
    document.getElementById(&#39;fb-root&#39;).appendChild(e);
  }());
</script>
<!-- FACEBOOK SDK FINE -->
che è il Javascript SDK e che permette il caricamento del widget in modo asincrono per non bloccare il caricamento degli altri elementi della pagina.
E' proprio questa particolarità che fa preferire questo metodo di installazione rispetto a quello già illustrato. Ecco lo screenshot esplicativo
javascript-sdk-facebookSi salva il modello. Adesso per l'inserimento dei widget bisognerà selezionare, copiare e incollare la seconda parte del codice al posto della prima. Faccio l'esempio per il Like Box ma il procedimento è lo stesso anche per gli altri due widget.
Si accede alla pagina del Like Box e si incolla l'ID della nostra pagina fan. Dopo aver personalizzato il widget, si clicca su Get Code 
like-box-pagina-fanNella finestra che si aprirà sarà nostra cura copiare il codice XFBML invece di quello dell'iFrame  
codice-xfbml
Si incolla in Layout > Aggiungi un gadget > HTML/Javascript in questo modo
facebook-pagina-fan
Si clicca su Salva e si posiziona con il mouse come al solito. L'unica controindicazione è nella lingua visto che, per il momento, invece di visualizzare le espressioni "Mi Piace" e "Non ti piace più" si vedono le corrispondenti espressioni in lingua inglese. Ho provato a sostituire la stringa en_US con it ma non funziona. Il problema è che non sono riuscito a trovare la versione italiana di questo file Javascript http://connect.facebook.net/en_US/all.js. Se qualcuno, più bravo di me, ci riesce tanto di cappello e di ringraziamenti.
Aggiornamento: Ho trovato lo script in italiano. Basta sostituire en_US con it_IT.
Con i plugin inseriti con questa procedura non è raro che vengano caricati per ultimi, in modo indipendente dal resto della pagina, con grande beneficio per la rapidità di visualizzazione. Sono inoltre informato che, in alcuni blog, i plugin di Facebook ancora non funzionano in modo corretto. Invito coloro che si trovassero in questa situazione a provare questo sistema per vedere se riescono a risolvere.



22 commenti :

  1. razie, mi hai risolto il problema. sei un grande. meriti una statua d'oro.

    RispondiElimina
  2. @segreti della pesca
    Questo sistema è anche migliore dell'altro perché molto più rapido nel caricare la pagina.
    Purtroppo per adesso non sono ancora disponibili le API in italiano o, se ci sono, non sono riuscito a trovarle ^_^

    RispondiElimina
  3. mi sa che ho un problema nel mio blog... xchè compare solo la mia anteprima se clicco su mi piace e nn quella degli altri? E di conseguenza in attività recenti compaiono solo le mie preferenze :(
    puoi testare tu?

    RispondiElimina
  4. @soffio di dea
    Funziona perfettamente. Il widget è strutturato in modo da vedere solo i "Mi Piace" di chi ti è amico su Facebook. Ho cliccato, ho visto i tuoi e certamente tu vedrai il mio.
    Ciao

    RispondiElimina
  5. si visto grazie Parsifal... infatti mi stava sorgendo il dubbio degli "amici"... sarà x motivo di privacy :) grazie gentilissimo kiss

    RispondiElimina
  6. ciao parsifal, per caso tu sai come fare per impostare un widget su blogger affinchè venga caricato per ultimo all'interno di una pagina?

    RispondiElimina
  7. ps nello specifico sto usando un tuo script per gli ultimi post, ma le anteprime vengon ricavate dalle immagini dei post che son abbastanza grandi e anche se ridimensionate mantengono l'ingombro.. però non vorrei rinunciare a questa funzionalità se fosse possibile

    RispondiElimina
  8. @emanuele
    Per un widget di Blogger l'unica cosa che si può fare è inserirlo nella parte bassa della sidebar. In questo modo le parti essenziali della pagina vengono caricate e il completamento avviene quando sono già visibili gli oggetti "above the fold"

    RispondiElimina
  9. ciao parisifal32 non so se posto nel posto giusto ma ti voglio chiedere un aiuto sono giorni che cerco dappertutto come fare ma non riesco proprio.

    Io cerco un modo per inserire i post su blogger (blogspot) automaticamente, attraverso i feed rss di un sito, o cercato ovunque ma non riesco spero che anche questa volta mi aiuteraiiiiii...

    Ciao e grazie e fammi sapere

    RispondiElimina
  10. @webdesigner9293
    Non mi risulta esista un plugin per farlo in automatico. Con Wordpress c'è l'imbarazzo della scelta ma con Blogger, se esiste, non ne sono a conoscenza :-)

    RispondiElimina
  11. ciao parisifal32 grazie per la risposta, mi puoi dire un applicazione per wordpress che fa questo lavoro che ti ho detto prima..
    ciao e grazie

    RispondiElimina
  12. @webdesigner9293
    So che ci sono ma non sono molto addentro a Wordpress...

    RispondiElimina
  13. grazie parisifal32 oggi ho fatto un pò di ricerche e su wordpress ho trovato due plugin che sarebbero adatti: FeedWordPress e Wp-o-matic.

    Però questi due prendono solo le ultime news dei feed quibndi gli ultimi post, io stò cercando un modo per postare tutti i post di un feed ma proprio non riesco a trovare come fare anche con questi due plugin per wordpress.
    ciao

    RispondiElimina
  14. Grazie anche io finalmente sono riuscita a mettere il Like box di facebook utilizzando il codice per il caricamento in modo asincrono.

    Grazie ancora! ^_^
    Rosalba

    RispondiElimina
  15. BELLISSIMO ARTICOLO! PERO MI KIEDEVO SE C'ERA UN MOMO PER INSERIRE LA CASELLA MI PIACE IN ALTO A DESTRA COME HAI FATTO TE INSERENDOLO COME WIDGET, CIOE NEL SENSE SENZA TOCCARE LA PARTE HTML DEL MODELLO DEL BLOG.
    QUINDI FACENDO SEMPLICEMTENTE AGGIUNGI GADGET E POI HTML.

    RispondiElimina
  16. @RubelCredo non esista al momento un hack per Blogger che sia in grado di farlo. Con i nuovi Social Plugin vedrò se sarà possibile. Ci sono dei bottoni per condividere l'homepage del blog ma non i singoli post.

    RispondiElimina
  17. @Rubel Guarda se ti piace questa barra flottante
    http://www.ideepercomputeredinternet.com/2010/10/sharesidebar-per-un-widget-di.html

    RispondiElimina
  18. grazie milleeeeeeee non so come ringraziarti!!! sono mesi che ci provo ma non mi riusciva mai ma grazie a te ci sono riuscita! grazie mille! =)

    RispondiElimina
  19. @ery4ever
    felice di esserti stato di aiuto. Non vorrei raffreddare il tuo entusiasmo ma questo metodo è sorpassato e adesso è più idoneo quest'altro
    http://www.ideepercomputeredinternet.com/2011/12/come-installare-i-plugin-di-facebook.html
    Comunque se a te questo va bene lascia pure tutto così ;)

    RispondiElimina
  20. no ormai lascio questo, non vorrei combinare pasticci ^_^

    RispondiElimina

Non inserire link cliccabili altrimenti il commento verrà eliminato. Metti la spunta a Inviami notifiche per essere avvertito via email di nuovi commenti.
Info sulla Privacy