Comment actualiser une page Web dans Chrome (analogique Ctrl + F5) sur un appareil sans bouton de menu?


16

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

Comment peut-on effectuer un rafraîchissement en profondeur d'une page Web - analogue de Ctrl+F5raccourci clavier sur les ordinateurs de bureau?

Veuillez noter que l'appareil n'a pas de bouton de menu.

Selon la seule 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 élégante.


2
Comment le bouton de menu (ou son absence) est-il lié?
eldarerathis

@eldarerathis, j'ai vu un message sur le Net, j'ai suggéré d'appuyer sur le bouton de l'outil Actualiser tout en maintenant la touche Menu.
Stan

Ah, intéressant. Je n'avais jamais entendu ça auparavant.
eldarerathis

1
Cette question a de bien meilleures réponses sur StackOverflow (ce qui montre à quel point le fractionnement de la communauté n'aide pas; Android est suffisamment proche de la programmation pour que cela ne vaille pas la peine de créer un site séparé pour; Chimie vs Maths - bien sûr.)
Dan Dascalescu

Réponses:


-2

Contournement par cache de site:

Cela nécessite un code javascript simple à 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. Selon cette page MDN sur Forcer le rechargement de la page actuelle à partir du serveur ,

javascript:location.reload(true)

Entrez le code ci-dessus dans la barre d'adresse du navigateur et appuyez sur la touche Entrée. Cela récupérera tout le contenu du serveur au lieu de choisir les éléments mis en cache dans votre navigateur (contournant ainsi 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 tout le cache du site Web, utilisez les données de cache du navigateur global. Vous le trouvez 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".

Remarque: Alors que Ctrl+ F5entraînera le navigateur à jeter le cache et à demander de nouveaux contenus au serveur, le serveur peut ignorer l'en- no-cachetête et servir une page mise en cache côté serveur. Ainsi, même Ctrl+ F5peut renvoyer une ancienne version de la page si le serveur ignore l'en-tête no-cache.

Mode navigation privée:

La navigation en mode navigation privée désactive l'historique et le cache. Ainsi, vous pouvez visiter n'importe quel site via le mode navigation privée pour demander un nouveau contenu à chaque fois.


Pour une discussion plus intéressante sur ce que fait Ctrl+ F5ou forcer le rafraîchissement,

Lisez cet article SO, quelles requêtes les actualisations «F5» et «Ctrl + F5» des navigateurs génèrent-elles?



1
Même après avoir effacé les données de navigation, le rafraîchissement en profondeur ne se produisait pas. J'ai dû tuer et relancer Chrome dans mon téléphone Android pour le forcer à sortir du cache. (Après coup, il semble que même après avoir effacé le cache sur le disque (probablement), le cache en mémoire est toujours là. Killing Chrome efface également le cache de la mémoire.) [PS: Par "disque", je veux dire le non permanent stockage volatile aka mémoire flash.]
ADTC

3

Sur ma tablette Samsung parcourant avec Chrome, saisissez ceci dans la barre d'adresse:

javascript:location.reload(true)

Cela devrait déclencher un rechargement dur en utilisant Javascript. Maintenant, je n'ai plus à attendre des jours pour observer les résultats d'un changement de code que j'ai fait. Un nouveau problème est alors que taper sur une tablette n'est pas ma chose préférée à faire.

Au lieu de taper la commande ci-dessus, j'ai également essayé de passer en mode bureau, puis de revenir. Cela ne s'est pas profondément rafraîchi.


2

Je n'ai obtenu aucune de ces solutions au travail. Cependant, j'ai trouvé une solution de travail.

Tout d'abord, découvrez l'url css. Dans mon cas, cela ressemblait à ceci:

/min/assets/css/style.min.css

Écrivez-le dans le champ d'adresse, mais ajoutez-y également une variable GET:

/min/assets/css/style.min.css?hello

Espérons que la variable GET soit acceptée. Parce que c'est une nouvelle URL, elle force le CSS à se recharger. Revenez maintenant sur le site et le css aurait dû être rechargé.


2

Je l'ai trouvé !!!!!!

Sur le côté gauche de l'URL, il y a une icône d'information (i) ou une icône de verrouillage. Cliquez sur l'icône puis sur [configuration du site Web].

Vous trouverez une icône de corbeille pour vider le cache du site actuel, et alternativement un bouton "restaurer les préférences".

Travailler sur Android Chrome 71.


1
Ne fonctionne pas sur mon S9 +, Chrome build 73.0.3683.90. J'ai frappé l'option Clear & Reset au moins 15 fois sur une page que je contrôle (donc je sais ce que le code fait assez bien). Cependant, le JS exécuté sur la page que je charge est toujours une ancienne version.
SE frappe à nouveau malheureusement le

1
Eh bien, cela a parfaitement fonctionné sur mon S9, donc je suppose qu'il se passe quelque chose de spécifique à votre cas! Pourriez-vous s'il vous plaît piller davantage cela?
JCM

J'ai maintenant essayé cela sur deux appareils différents, l'un en mode développeur (mon téléphone, car je suis développeur) et celui d'un ami. De plus, j'ai essayé sur une tablette; non y aller +. De plus, j'ai même essayé sur mon iPhone d'entreprise en utilisant Chrome, et le même problème est là. Donc, de mon point de vue, vous semblez chanceux, plus que je ne semble avoir plusieurs appareils défectueux à ma disposition.
SE frappe à nouveau malheureusement le

Bien sûr, le vrai problème est le comportement génial de Chrome / Android et la mise en cache hyper-agressive. C'est comme un mode incognito qui ne fonctionne pas (en parlant de ça ... qui n'a pas fonctionné non plus ...)
SE Strikes Again Malheureusement

Je viens de vérifier que le Chrome de l'iPhone n'a pas cette option, vous dites donc je pense que nous ne parlons pas de la même chose: de plus, il n'y a pas de "clear & reset" dans le Chrome de mon Android. Pour le vérifier, j'ai testé ma suggestion sur un Xiaomi A1 qui fonctionne bien (notez qu'il affiche la taille du cache local de la page en Ko). Il se peut que vous deviez fermer l'onglet (ou essayer de tuer Chrome). Sinon, je me demande quel est le "bouton poubelle" d'un site spécifique devrait faire ...?
JCM

1

Je trouve juste une solution plus élégante. Dans le menu de la page Web, demandez la version de bureau du site Web. Il extraira les données du serveur et la page se rechargera. Après cela, vous pouvez revenir pour la version mobile.


1
Tous les sites Web ne proposent pas de versions mobiles / de bureau.
ale

1
La version actuelle de Chrome sur Android dispose de l'option Demander un site de bureau. Que tous les sites respectent ou non cette demande, c'est toujours une option efficace dans de nombreux cas. Essayer cela et constater que cela ne fonctionne pas est beaucoup plus facile et plus rapide que d'effacer les caches dans les paramètres.
Philip Jones

1

J'ai besoin d'un moyen d'effacer le cache actuel ou tout le cache du même domaine d'origine via javascript, donc je peux m'assurer que le déploiement de la mise à jour de ma webapp arrive sans erreur.

Je n'ai également pas réussi à changer temporairement les balises META du cache dans l'en-tête html.

Uniquement sur ordinateur et non automatisable:

ctrl + R

utilisé pour forcer le rechargement pour vider le cache.

vous devez maintenant appuyer sur

ctrl + shift + R
or
shift + F5

Il semble que le chrome ait rendu difficile l'effacement du cache.

Ils le font probablement pour tricher dans les repères de vitesse du navigateur. Style VW.

J'ai écrit ma propre fonction de contournement forceReload () qui fonctionne sur Windows Chrome et Android Chrome et chrome:

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 le contenu qui a été chargé sur la page actuelle, vous pouvez le déclencher une fois sur chacun de vos clients après que de nouvelles mises à jour sont sur le serveur, ou simplement ajouter un bouton de rafraîchissement de travail sur votre application.


Merci d'avoir partagé le code. La récupération semble encore une API expérimentale, alors une autre API de cache expérimentale pourrait également être utile.
Stan

-1

Tirez vers le bas sur une page pour la recharger, elle est intégrée au chrome pour smartphones, pour voir plus d'astuces comme celle-ci, consultez ce lien, où j'ai trouvé la solution à votre problème


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

Il n'est pas spécifié si la solution requise est sous un point de vue Android ou
codé

1
Impossible de comprendre ce que vous entendez par là. Mais cette réponse ne me convainc pas qu'elle apportera une solution au problème du PO.
Lucky

Cette «réponse» indique littéralement aux gens que vous pouvez effectuer un rafraîchissement régulier en tirant vers le bas sur la page. La question d'OP était cependant de faire un "rafraîchissement dur", équivalent CTRL + F5 sur le PC.
Bort

-3

À gauche de la fenêtre d'adresse Web que vous visitez se trouve une flèche presque circulaire.


1
Je ne crois pas que cela fasse un rafraîchissement profond comme Stan le demande.
dotVezz
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.