Déclen­cher le cache appli­ca­tif HTML 5 par javas­cript

Parfois je me pose des ques­tions exis­ten­tielles. Hier c’était de savoir si le cache appli­ca­tif de HTML 5 pouvait être activé dyna­mique­ment par javas­cript lors de l’exé­cu­tion de la page, au lieu d’être déclaré de façon statique dans le code HTML.

L’idée derrière cette inter­ro­ga­tion est que le cache appli­ca­tif ne soit activé que sur certains critères (compa­ti­bi­lité du navi­ga­teur avec le code javas­cript utilisé, requête spéci­fique de l’uti­li­sa­teur, etc.).

Petit test :

<!DOCTYPE html><html>
<head><meta charset=utf8><title>TEST offline</title></head>
<body><script>
document.documentElement.setAttribute("manifest", "cache.manifest") ;
window.applicationCache.update() ;
</script><body>
</html>

J’ai été agréa­ble­ment surpris par Mozilla Fire­fox, qui accepte le tout sans bron­cher. La décon­nexion permet de véri­fier que le cache appli­ca­tif fonc­tionne sans heurs.

Mes espoirs se sont arrê­tés là, Chrome déclenche une excep­tion sur la mise à jour à seconde ligne de script. Il faut décla­rer le cache de façon statique dans le HTML. Pas le choix, dommage.

Rejoindre la conversation

2 commentaires

  1. Un cache application est créé lors du chargement de la page. Firefox a un bug, qui est supposé renvoyé INVALID_STATE_ERR. Une des raisons est que le document chargé depuis le cache, n’aurait pas l’attribut manifest= » » et donc perdrait tout son intérêt qui est justement de faire fonctionner le cache.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

À propos de ce site, du contenu, de l'auteur
Je poste parfois ici des humeurs ou des pensées. Parfois je change, parfois je me trompe, parfois j'apprends, et souvent le contexte lui-même évolue avec le temps. Les contenus ne sont représentatifs que de l'instant où ils ont été écrits. J'efface peu les contenus de ce site, merci de prendre du recul quand les textes sont anciens. Merci

À toutes fins utiles, ce site est hébergé par Scaleway, ONLINE SAS, joignable par téléphone au +33 (0)1 84 13 00 00 et joignable par courrier à l'adresse BP 438 - 75366 Paris Cedex 08.