23 votes

Comment rafraîchir une page web dans Chrome (Ctrl+F5 analogique) sur un appareil sans bouton de menu ?

J'ai un appareil Nexus 7 Android avec la version 4.2.2 et le navigateur Chrome.

Comment peut-on effectuer un rafraîchissement en profondeur d'une page web - analogue à l'opération suivante Ctrl+F5 hotkey sur les bureaux ?

Veuillez noter que l'appareil ne dispose pas d'un bouton de menu.

Selon le seul question connexe que j'ai trouvée ici La solution consiste à vider complètement le cache du navigateur. Je préférerais une solution plus pratique et plus élégante.

2 votes

Quel est le lien avec le bouton de menu (ou son absence) ?

1 votes

@eldarerathis, j'ai vu un post sur le Net qui suggérait d'appuyer sur le bouton de l'outil Rafraîchir tout en maintenant la touche Menu enfoncée.

0 votes

Ah, intéressant. Je ne l'avais pas encore entendue.

1voto

Lucky Points 3245

Contournement du cache par site :

Cela nécessite un simple code javascript à exécuter dans la barre d'adresse pour contourner le cache et récupérer le contenu du serveur au lieu du cache du navigateur. D'après cette page MDN sur le rechargement forcé de la page actuelle à partir du serveur ,

javascript:location.reload(true)

Saisissez le code ci-dessus dans la barre d'adresse du navigateur et appuyez sur la touche Entrée. Cela permettra de récupérer tout le contenu du serveur au lieu de choisir les éléments mis en cache dans votre navigateur (ce qui permet de contourner le cache du navigateur).

Contourner les données du cache pour tous les sites web (cache global)

Le javascript ci-dessus ne fonctionne que pour un site web spécifique que vous avez actuellement ouvert. Pour effacer le cache de tous les sites Web, utilisez le cache global du navigateur. Vous le trouverez sous,

Settings > Privacy > CLEAR BROWSING DATA

Cochez la case "Cache" (et d'autres options comme les données du navigateur, les cookies, le mot de passe, etc. si vous le souhaitez) et sélectionnez "Effacer".

Nota: Alors que Ctrl + F5 entraînera le navigateur à vider le cache et à demander un nouveau contenu au serveur, ce dernier pouvant ignorer l'option no-cache et servir une page en cache côté serveur. Ainsi, même Ctrl + F5 peut renvoyer une ancienne version de la page si le serveur ignore l'en-tête no-cache.

Mode Incognito :

La navigation en mode "incognito" désactive l'historique et le cache. Vous pouvez donc visiter n'importe quel site en mode incognito pour demander du contenu frais à chaque fois.


Pour une discussion plus intéressante sur la question de savoir ce que Ctrl + F5 ou un rafraîchissement forcé le fait,

Lisez ce billet de SO, Quelles requêtes les rafraîchissements "F5" et "Ctrl + F5" des navigateurs génèrent-ils ?

0 votes

1 votes

Même après avoir effacé les données de navigation, l'actualisation en profondeur ne s'est pas produite. J'ai dû tuer et relancer Chrome dans mon téléphone Android pour le forcer à aller chercher dans le cache. (Après coup, il semble que même après avoir effacé le cache sur le disque (vraisemblablement), le cache en mémoire soit toujours présent. Tuer Chrome efface aussi le cache en mémoire). [PS : Par "disque", j'entends le stockage permanent non volatile, alias la mémoire flash].

1voto

sax Points 11

J'ai besoin d'un moyen d'effacer le cache actuel ou tous les caches du même domaine d'origine via JavaScript, afin de m'assurer que le déploiement de la mise à jour de mon application Web arrive sans erreur.

Je n'ai pas non plus réussi à modifier temporairement les métabalises du cache dans l'en-tête HTML.

Seulement sur le bureau et non automatisable : Ctrl + R. Avant, il fallait forcer le rechargement pour vider le cache. Maintenant, vous devez appuyer sur Ctrl + Shift + R ou Shift + F5.

J'ai écrit ma propre solution de contournement forceReload() qui fonctionne sur Windows Chrome, Chrome pour Android et Chromium :

window.forceReload = function() {
    if (!window.fetch) return document.location.reload(true);
    var els = document.getElementsByTagName("*");
    for(var i = 0 ; i < els.length ; i++){
        var src = "";
        if (els[i].tagName == "A") continue;
        if (!src && els[i].src) src = els[i].getAttribute("src");
        if (!src && els[i].href) src = els[i].getAttribute("href");
        if (!src) continue;
        fetch(src, {cache: "reload"});
    }
    return document.location.reload(true);
};

Cette fonction ne rechargera que les contenus qui ont été chargés sur la page actuelle. Vous pouvez la déclencher une fois sur chacun de vos clients après l'arrivée de nouvelles mises à jour sur le serveur, ou simplement ajouter un bouton de rafraîchissement fonctionnel sur votre application.

0 votes

Merci d'avoir partagé le code. Fetch semble être une API encore expérimentale, alors probablement qu'une autre API de cache expérimentale pourrait être pratique aussi.

0 votes

Si l'on considère qu'Android.SE se concentre davantage sur les problèmes rencontrés par les utilisateurs finaux, est-ce que le projet Android.SE est le meilleur moyen d'améliorer la qualité de vie des utilisateurs ? forceReload() peut-elle être appelée directement à partir du navigateur ?

0voto

Alex Logvin Points 101
Suivez ces étapes pour connecter votre smartphone à votre ordinateur :
  1. Ouvrez le Options pour les développeurs sur votre Android. Voir Configurer les options du développeur sur l'appareil .

  2. Sélectionnez Activer le débogage USB .

  3. Sur votre ordinateur, ouvrez Chrome.

  4. Aller à chrome://inspect#devices .

  5. Assurez-vous que le Découvrir les périphériques USB est activée.

  6. Connectez votre appareil Android directement à votre machine de développement à l'aide d'un câble USB. La première fois que vous faites cela, vous voyez généralement que DevTools a détecté un périphérique hors ligne. Si le nom du modèle de votre appareil Android s'affiche, DevTools a réussi à établir la connexion avec votre appareil.

  7. Si votre appareil est affiché comme Hors ligne accepter le Autoriser le débogage USB sur votre appareil Android.

(Copié d'ici aquí )


Maintenant, suivez ces étapes pour faire Ctrl + F5 recharger :
  1. Sur votre smartphone, ouvrez Chrome et allez sur le site Web de votre choix.

  2. Dans l'onglet DevTools de votre ordinateur, cliquez sur inspecter sous l'url du site web.

  3. Dans la fenêtre ouverte (où vous pouvez voir l'écran du mobile), appuyez sur Ctrl + F5 .

0 votes

Ne fonctionne pas pour Chrome 94.0.4606.81 sous Android et Linux, sauf lorsque NetworkDisable Cache est coché.

0voto

shmuelp Points 657

Autre option : installez une application de clavier complet (par ex. https://play.google.com/store/apps/details?id=org.pocketworkstation.pckeyboard ), appuyez sur la barre d'adresse pour ouvrir le clavier, puis appuyez sur shift+F5

-1voto

fsalazar_sch Points 129

Tirer vers le bas sur une page pour la recharger, c'est incorporé à Chrome pour smartphones.

1 votes

Bien que cette fonctionnalité ait été récemment ajoutée aux versions de Chrome (ver.41 ci-dessus), elle ne sera pas disponible dans les versions antérieures. Cette fonctionnalité peut donc fonctionner ou non. Et plus important encore, cette fonction ne fait que recharger la page de manière normale, mais l'OP demande un rafraîchissement complet.

0 votes

Il n'est pas précisé si la solution demandée est du point de vue d'Android ou du codage.

1 votes

Je ne comprends pas ce que vous voulez dire par là. Mais cette réponse ne me convainc pas qu'elle apportera une solution au problème de l'OP.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X