Archive

Archive for janvier, 2009

Faire cohabiter JQuery avec un autre framework javascript

janvier 21st, 2009

JQuery est de plus en plus à la mode. Résultat nombreux sont ceux qui veulent l’utiliser pour des développements futur.

Mais quid de l’existant.

En effet, il peut être parfois fastidieux de recoder toutes les fonctions javascript d’un site qui utilisait un autre framework javascript tel que prototype.

Inclure JQuery en même temps que prototype par exemple génère des conflits. Dans ce cas par exemple, il résultera un conflit à cause de la fameuse fonction $ qui existe dans en JQuery et en Prototype.

Heureusement, JQuery répond à la problématique en introduisant le mode de fonctionnement “No Conflict“. Pour cela, il suffit d’invoquer la méthode jQuery.noConflict(); à la suite du chargement de l’ensemble des frameworks.

Ainsi, en reprenant l’exemple de la fonction $, celle-ci n’utilisera pas JQuery mais un autre fremewok (ou une fonction propriétaire) définissant cette fonction.

ATTENTION, pour utiliser les fonctions de JQuery, il faut utiliser l’operateur jQuery.xxx et non plus l’opérateur $.xxx.

VN:F [1.0.8_357]
Rating: 4.0/5 (3 votes cast)

developpement , , ,

Développement de gadgets iGoogle sans cache

janvier 16th, 2009

Je viens de débuter depuis quelque jours le développement d’un gadget iGoogle pour un des sites sur lesquels je travaille. Je suis rapidement tombé sur un problème ennuyeux lors de la phase de développement le cache. N’ayant pas trouvé la solution facilement je vous fait partager mon expérience.

Avant d’aller plus loin, voici quelques rappels.

Un gadget iGoogle est une petite application qui s’installe sur la plateforme iGoogle. En général ces applications servent à mettre en avant les contenus d’un site Internet (la météo, les résultats sportifs, …) mais certaines font beaucoup plus qu’être un simple agrégateur du flux RSS ou XML. C’est applications sont en général un document XML contenant de l’HTML couplé à des feuilles de styles CSS pour l’interface utilisateur ainsi que du code javascript pour les interactions.

La plateforme iGoogle est le conteneur de ces applications (à noter qu’il existe d’autres conteneurs d’applications tels que facebook, myspace, …). Elle permet ainsi d’ajouter et/ou supprimer des applications, gérer leur affichage ainsi que leur comportement. Pour finir sur la présentation du conteneur iGoogle, Google fournit toute une série d’API de développement utilisables en javascript (appels ajax, API opensocial, …) au sein d’un gadget.

Pour utiliser iGoogle, il suffit de disposer d’un compte chez google (un compte gmail par exemple). Ensuite, vous pouvez utiliser le service et développer vos premiers gadgets.

Lors du développement d’un gadget, le seul moyen de tester notre code consiste à ajouter ce gadget à notre conteur iGoogle. Or c’est à ce moment que se pose notre problème. Lors de l’ajout d’un gadget dans le conteneur, celui-ci est mis en cache par google. Ce comportement est génial lorsque le gadget est finalisé. En effet, le cache évite que le gadget interroge constament votre serveur ce qui pourrait poser problème si le gadget est utilisé par de nombreuses personnes. Par contre, en phase de développement il est impossible de développer avec du cache surtout que la durée de mise en cache est très importante.

Heureusement (il m’a fallu une après-midi pour trouver la solution), google met à notre disposition un gadget : my gadgets qui permet d’administrer les gadgets au sein du conteneur courant. Ce gadget vous permet d’ajouter un gadget dans votre conteneur et définir si celui-ci doit utiliser le cache google.  Pour cela il suffit de décocher la case cached en face du nom de votre widget et le tour est joué.

my_gadget.jpg

VN:F [1.0.8_357]
Rating: 5.0/5 (2 votes cast)

developpement , , ,

Bonne année 2009

janvier 1st, 2009

Je vous souhaite une très bonne et heureuse année 2009.

Que cette nouvelle année vous apporte tout le bonheur possible et que tous vos voeux se réalisent.

Les photos du réveillon son disponible ici

VN:F [1.0.8_357]
Rating: 5.0/5 (3 votes cast)

Non classé