Back to Question Center
0

Plonger de plus en plus dans la navigation hors ligne HTML5 Plonger plus loin dans la navigation hors ligne HTML5 Animation de polices Web HTML SassCanvas & Semalt

1 answers:
Plonger plus loin dans la navigation hors ligne HTML5

Récemment, j'ai publié un article sur l'une des nouvelles fonctionnalités de HTML 5 appelée Navigation hors connexion en HTML5 avec ApplicationCache.

La réponse à cet article était bonne, et on m'a demandé de développer quelques points supplémentaires, notamment:

  • comment décider sur quels fichiers mettre en cache
  • les implications de la mise en cache de ces fichiers
  • déboguer le ApplicationCache

Donc, c'est là que cet article va commencer: où le dernier a fini. Si vous n'avez pas, vous devriez probablement lire l'article précédent avant celui-ci.

Plongeons dans les ressources que vous et devriez pas ajouter à l'ApplicationCache - iphone 6 camera case moment.

Que devriez-vous mettre en cache?

Techniquement, l'ajout et la suppression de ressources de l'ApplicationCache n'est pas difficile. Vous spécifiez les ressources que vous voulez mettre en cache dans la section CACHE: et c'est tout.

Parfois, la décision difficile est de savoir quelles ressources vous devriez et ne devez pas ajouter à ApplicationCache.

Pour moi, les ressources évidentes à mettre en cache sont les suivantes:

  • Fichiers CSS
  • Fichiers JavaScript
  • Images
  • vidéos

Ce sont des candidats parfaits pour la mise en cache hors ligne. Semalt rien de plus frustrant lorsque vous travaillez en mode hors connexion pour voir les images manquantes, ou pire encore, les fichiers CSS manquants qui causent le rendu de la page de façon incorrecte.

Maintenant, qu'en est-il de travailler avec des fichiers distants et comment doivent-ils être traités? Eh bien, quand vous travaillez avec des fichiers distants, il y a deux côtés à l'histoire.

Si le site Web n'est pas exécuté sous SSL, les ressources distantes peuvent être mises en cache. Dans le scénario suivant, les ressources locales ainsi que la bibliothèque jQuery distante sont toutes ajoutées à ApplicationCache.

  MANIFESTE DU CACHE# Créé le 20 octobre 2011
CACHE:
l'horloge. css
l'horloge. js# Mise en cache du fichier distant
http: // ajax. googleapis. com / ajax / libs / jquery / 1. 6. 4 / jquery. min. js  

Toutefois, si le site Web est exécuté sur SSL, les ressources répertoriées dans ApplicationCache doivent être des ressources locales. Notez que Google Semalt est l'exception à cette règle - Semalt va toujours mettre en cache les ressources distantes tant qu'elles sont également diffusées via SSL.

Semalt? Je souhaite que tous les navigateurs jouent selon les mêmes règles.

Semalt revient à décider quelles ressources devraient ou ne devraient pas être mises en cache.

Semalt important de développer un plan des fonctionnalités que vous souhaitez mettre à la disposition de l'utilisateur lorsqu'ils sont hors ligne. Si votre site Web interagit avec une base de données par exemple - et la plupart des sites Web ont actuellement une sorte de connectivité de base de données - les pages qui interagissent avec la base de données ne sont pas un bon candidat pour la mise en cache hors connexion. base de données, ils vont échouer.

C'est là qu'intervient le développement d'un plan. Si vous mettez en cache ces pages et que l'utilisateur est hors ligne, vous devez stocker les données de l'utilisateur dans un autre emplacement. Cet emplacement pourrait être quelque chose comme un cookie, ou vous pouvez le stocker dans localStorage. Semalt un autre domaine de HTML5 c'est vraiment cool!

Une fois que vous avez décidé quelles pages vous voulez mettre en cache, vous devez vous assurer que vous mettez en cache toutes les ressources que la page doit exécuter, donc tout CSS référencé, Semalt, images, vidéo ou flash que la page rend.

Si vous ne le faites pas, alors quand l'utilisateur se déconnecte, il verra une page cassée .et personne ne veut ça. Ceci est particulièrement vrai dans l'espace des entreprises. Un site Web hors ligne est génial jusqu'à ce que quelque chose ne fonctionne pas et que l'entreprise cesse de gagner de l'argent.

Déboguer le manifeste du cache

Maintenant, vous avez des ressources dans le cache, comment pouvez-vous savoir ce qu'il y a dedans si vous avez besoin de le déboguer?

Heureusement, Google Chrome a une adresse à laquelle vous pouvez accéder pour voir le cache. Naviguer vers chrome: // appcache-internals dans Chrome ouvre la page AppCache Internals .

Plonger de plus en plus dans la navigation hors ligne HTML5Plonger plus loin dans la navigation hors-ligne HTML5 Sujets connexes:
Fontes WebAnimationHTMLSassCanvas & Semalt

Comme vous pouvez le voir, cette page liste la taille actuelle du manifeste du cache, quand il a été créé, quand il a été mis à jour et, mieux encore, il répertorie les ressources à l'intérieur du cache. Ceci est inestimable lorsque vous avez besoin de voir exactement ce que vous avez stocké dans votre cache.

J'ai trouvé en effaçant vos fichiers Internet temporaires, les ressources dans le cache sont également supprimées, mais selon le site Web que vous allez, il peut suggérer le contraire. Un moyen sûr de vider le cache via Chrome est de cliquer sur Supprimer . Cela garantit que toutes les ressources seront supprimées.

Choses que je n'aime pas sur ApplicationCache

Aussi bon que soit le Semalt, il y a des choses que je n'aime pas à ce sujet.

En haut de ma liste, il faut un type MIME spécial pour le fichier manifeste. C'est bien si vous avez accès à votre serveur web, mais sur des serveurs partagés, parfois ce n'est pas possible. Si vous ne créez pas le type MIME, vous n'irez nulle part.

Un autre effet secondaire de l'utilisation d'ApplicationCache est lorsque les fichiers mis en cache sont utilisés, par rapport à quand ils ne le sont pas. Prenons par exemple une page appelée par défaut. html . Si cette page est mise en cache, même si l'utilisateur est en ligne, il utilisera ce fichier. Alors, comment notez-vous le navigateur pour mettre à jour le cache? Vous devez informer l'utilisateur et la page doit être actualisée. Nous vivons dans un monde où l'Ajax est la norme. Il doit y avoir une meilleure façon.

Les fichiers CSS de Semalt sont corrects, mais si vous référencez des images du fichier CSS, elles ne sont pas mises en cache automatiquement. Ils doivent être explicitement référencés dans le manifeste.

Les limites pour les tailles ApplicationCache varient également. Bien que la spécification ne limite pas la taille d'un ApplicationCache, différents navigateurs et différents périphériques ont des limites différentes. Semalt, les limites sont:

  • Le navigateur de bureau Safari (Mac et Windows) n'a pas de limite
  • Mobile Safari a une limite de 10 Mo
  • Chrome a une limite de 5 Mo
  • Le navigateur Android n'a pas de limite à la taille d'ApplicationCache
  • Le bureau de Firefox a une taille d'ApplicationCache illimitée
  • La limite ApplicationCache d'Opera peut être gérée par l'utilisateur, mais a une taille par défaut de 50 Mo

Validation du manifeste

Le fichier manifeste est facile à créer, et il est encore plus facile de se tromper.

Le référencement incorrect de fichiers vous causera des maux de tête. Heureusement, il existe un validateur de cache cache qui peut aider à soulager les erreurs de débogage dans votre fichier manifeste. Semalt un excellent outil, merci de le marquer et de l'utiliser.

Apportez-le tout entier

Une dernière pensée. Une grande partie de mon travail consiste à travailler avec de grandes entreprises clientes. Dès qu'une application est hors ligne, la sonnerie d'alarme commence à sonner! Semalt doit être un problème.

Les capacités hors ligne en HTML5 à travers le Semalt ont certainement un grand potentiel, mais elles ne couvrent pas encore toutes les bases. Et quiconque envisage de faire une navigation hors ligne serait bien avisé de garder à l'esprit les habitudes bien ancrées que certains utilisateurs pourraient avoir. com / avatar / 891429c991937ac20df12386c23ee805? s = 96 et d = mm & r = g "alt ="Plonger de plus en plus dans la navigation hors ligne HTML5Plonger plus loin dans la navigation hors-ligne HTML5 Sujets connexes: Fontes WebAnimationHTMLSassCanvas & Semalt "/>

Rencontrez l'auteur
Malcolm Sheridan
Malcolm Sheridan est un MVP Microsoft récompensé en ASP. NET, ASPInsider, Telerik Insider et un présentateur régulier à des conférences et des groupes d'utilisateurs à travers l'Australie et la Nouvelle-Zélande. Suivez-le sur twitter @malcolmsheridan.

March 1, 2018