Déboguer facilement un service Web en PHP et JavaScript

S’il vous en reste, le développement d’un service Web en JavaScript (côté client) et PHP (côté serveur) est une bonne occasion de vous arracher des cheveux. Le débogage est une opération délicate, quand vous ne pouvez pas vous appuyer sur un système tel que Xdebug.
C’est que dans une application Web traditionnelle, un appel de service consiste simplement à appeler un script PHP dont le contenu est retourné par le serveur. Dès lors, toute erreur survenant lors de l’exécution du service s’affiche nécessairement à l’écran.
Il en va tout autrement dans le cas d’une application Web moderne, de type Progressive Web Application. Ici, l’appel de service s’effectue par le truchement d’un objet XMLHttpRequest. Le résultat de l’exécution du script est toujours renvoyé par le serveur, mais il parvient au client via une des propriétés de cet objet.
Dans ces conditions, la callback fournie à l’objet XMLHttpRequest doit analyser ce résultat pour déterminer si une erreur ou non a été rencontrée, et si oui remonter au développeur toutes les informations utiles qu’il voyait s’afficher à l’écran dans le cas d’une application Web traditionnelle : chemin d’accès au script, ligne dans le script où l’erreur est survenue, description de l’erreur, voire plus.
Déboguer facilement un service en JavaScript et PHP
La première chose à faire avant de se lancer dans le développement d’un service Web consiste donc à mettre en place une système de remontée des résultats d’un appel de service efficace. On aurait tort de s’en passer, car il ne faut finalement guère de lignes de code.
Continuer la lecture de « Déboguer facilement un service Web en PHP et JavaScript »
Déboguer facilement un service Web en PHP et JavaScript

Afficher du texte en gros pixels dans une page Web

Pas facile de la jouer rétro avec les technologies du jour ! Afficher un texte en gros pixels comme sur les vieilles bécanes, c’est toute une affaire quand on sait que le moindre texte subit désormais de multiples traitements pour le rendre bien lisible à l’écran. En particulier, ses courbes sont lissées en recourant à l’anti-aliasing.
L’anti-aliasing: voilà l’ennemi. On connaît quelques contournements mis en place pour tenir compte du revival des jeux à gros pixels. Sur ce blog, cet article montre comment désactiver l’anti-aliasing dans le contexte 2D du canvas.
Toutefois, ce contournement ne fonctionne que dans le cas de la copie d’une image et le dessin de formes simples – le rectangle. L’API Canvas ne propose rien pour afficher un texte en gros pixels dans une police donnée, une police de 8×8 pixels à l’ancienne qui plus est.
Dès lors, comment parvenir à produire un pareil résultat ?
La page d'accueil de Pixel Saga: du texte pixelisé généré automatiquement
La solution est très simple. C’est tout simplement celle qui était en vigueur sur les vieux coucous… Explications.
Continuer la lecture de « Afficher du texte en gros pixels dans une page Web »
Afficher du texte en gros pixels dans une page Web

La promesse des promises en JavaScript

L’implémentation de la spécification ECMAScript 2015 sur laquelle JavaScript est fondé a conduit à introduire un nouvel objet standard en JavaScript : Promise. Il s’agit bien d’un objet standard, c’est-à-dire propre au langage comme String et non au navigateur, comme XMLHttpRequest.
Cet objet permet de faciliter et de sécuriser l’écriture d’un appel à une fonction asynchrone, c’est-à-dire à une fonction qui rend la main sans avoir encore retourné son résultat, s’engageant à signaler au programme qui l’a appelée quand ce résultat sera disponible, par exemple en appelant une fonction que le programme lui a fournie – une callback.
Le Serment des Horaces par David
Tout développeur JavaScript a très probablement déjà utilisé ce type de fonction, notamment pour charger des fichiers via l’objet XMLHttpRequest, ou pour déclencher une action après expiration d’un timer programmé via window.setTimeout ().
Avec l’objet Promise, l’asynchronisme a en quelque sorte été dégagé des objets qui viennent d’être cités pour accéder au rang d’aspect fonctionnel fondamental de JavaScript, au même titre que l’héritage basé sur les prototypes ou les closures. Partant tout développeur JavaScript doit maîtriser l’asynchronisme.
Pour autant, qui met le nez dans la spécification ne peut être que rapidement rebuté par l’opacité de cette dernière. Fort heureusement, il existe de nombreuses autres sources auxquelles se référer. Apportons ici une modeste contribution avec une présentation détaillée du système des promises destinée à qui découvre le sujet.
Continuer la lecture de « La promesse des promises en JavaScript »
La promesse des promises en JavaScript