2010-03-21 5 views
1

J'utilise FBML pour rendre certains éléments de la page tels que le nom de l'utilisateur, le profil pic, etc. Cependant, quand il y a beaucoup d'éléments FBML sur la page, il y a un léger retard avant qu'ils sont rendus - c'est bien puisque les appels AJAX sont faits au serveur pour récupérer les données par la bibliothèque FB JS. Cependant, je veux cacher le conteneur DIV contenant ces éléments jusqu'à ce que les éléments aient fini de charger, donc est-il possible de spécifier une fonction de rappel JS qui se déclenchera quand les données FBML auront fini de se charger?Retard de rendu des éléments FBML

Répondre

4

Essayez FB.Event.subscribe

FB.Event.subscribe('xfbml.render', function(response) { 
    //xfbml.render is fired when a call to FB.XFBML.parse() completes 
}); 
0

Il y a une autre option pour cela. Tout d'abord, assurez-vous que le jeu de paramètres xfbml=0 est activé pour toutes les incorporations. Ensuite, vous pouvez utiliser ce petit bout de jQuery:

window.fbAsyncInit = function(){ 
    FB.XFBML.parse(null,function(){ 
     // all FB embeds are rendered as of this point 
    }); 
};