Daily Shaarli
April 14, 2013
Pratique, mais peu connue et utilisée : la balise defer !
S'utilise dans le tag <script> pour spécifier que le chargement du script externe doit se faire une fois que la page a fini de charger !
Par défaut, les scripts (JavaScript) sont chargés et exécutés au fur et à mesure du chargement de la page, ce qui ralentit passablement son affichage (d'autant plus que les scripts sont souvent placés en début de fichier et ne peuvent être téléchargés en parallèle, contrairement aux CSS).
Avec cet attribut, vous optimisez la rapidité d'affichage de vos pages ;)
Cerise sur le gâteau : ça existe depuis HTML 4.01 et il fonctionne même sur IE !
Une liste de 63 (!) bonnes pratiques en PHP pour améliorer les performances de votre script !
Par exemple, utiliser @ devant l'appel d'une fonction (afin de masquer les erreurs) est TRÈS lent !
En PHP, il y a plusieurs moyens pour lire et écrire dans un fichier (fopen). De même pour en compresser son contenu (gzcompress).
Seulement, vous pouvez vous simplifier la vie en utilisant UNE seule instruction pour stocker du contenu sous forme compressée :
file_put_contents("compress.zlib://$filename", $content);
Ensuite, pour lire ce fichier compressé, UNE instruction également :
$content = file_get_contents("compress.zlib://$filename");
"compress.zlib://" est en fait ce qu'on appelle un wrapper ; il en existe plusieurs autres en PHP. Celui-ci permet de dire que le fichier sera compressé grâce à la bibliothèque Zlib.
ATTENTION : avec file_get_contents(), si la lecture échoue, il renvoie le booléen "false" ! Or, il est indispensable de bien tester le retour à l'aide de l'égalité de type (=== ou !==), car si le fichier contient, par exemple, 0 et que vous testez avec l'égalité simple (== ou !=), alors il considérera que c'est faux, donc que la lecture a échoué ! C'est normal : 0 == false (même valeur) mais 0 !== false (pas le même type) !
Donc il faut tester comme suit : if ($content !== false) { //OK, do something... }