Pour faire le suivi, j'ai fini par utiliser les options avancées du générateur @ font-face pour sous-définir mes polices, donc je n'ai chargé que les caractères nécessaires.
L'une des options était d'encoder en Base64 les polices (ce qui m'a permis de les incorporer dans mon fichier CSS). Si la mémoire est suffisante, il Base64 code la .woff
et la .ttf
police.
Bien que j'aime prendre en charge autant d'utilisateurs que possible de navigateurs, j'ai décidé que cela ne valait pas la peine de ralentir les utilisateurs de navigateurs modernes avec des données supplémentaires, probablement redondantes, j'ai donc utilisé Modernizr (qui utilise yep / nope.js) pour charger de façon asynchrone un CSS
fichier séparé avec des références à tous les formats de police conformément à la syntaxe de police pare-balles renforcée .
J'ai fait des allers-retours entre l'encodage Base64 de la .woff
police et l'inclusion du reste des déclarations de police dans le CSS
fichier principal ou uniquement l'inclusion de l'encodage Base64 .woff
dans le fichier principal CSS
, puis l'inclusion des autres formats dans un CSS
fichier que j'ai chargé de manière asynchrone via Modernizr.load
.
Je préfère les temps de chargement rapides à l'esthétique, donc FOUC n'était pas une grande préoccupation, mais je noterai que la plupart des navigateurs ont en quelque sorte `` cligné des yeux '' sur les polices lors du chargement (ce qui était après que les polices encodées en Base64 CSS
avaient été chargées) asynchrones.
Sur le plan positif, une fois que les polices ont été chargées et stockées dans le cache (les en-têtes expirant depuis longtemps définis sur le serveur), le `` clignotement '' a été éliminé et j'ai pu charger des ensembles étendus de polices afin que les utilisateurs qui parlent d'autres langues (et utilisent le Widget de traduction Google inclus) verrait toujours du texte stylisé.
Comme c'était mon propre site, j'ai pu expérimenter mais je le faisais en grande partie pour "montrer", je suis plus conservateur avec les sites clients.
Une autre technique que j'ai implémentée consistait à mettre toutes les .svg
polices dans un seul fichier et à les identifier chacune avec son propre ID plutôt que de les avoir chacune dans un fichier séparé comme le produit le générateur @ font-face.