Puis-je forcer une actualisation du cache dans Safari sous iOS?

57

La plupart des navigateurs de bureau Windows utilisent la combinaison de clavier Ctrl+ F5pour forcer une actualisation du cache spécifique à une page. Les navigateurs basés sur Mac OS X ont tendance à utiliser Command+ R. Existe-t-il une actualisation du cache équivalente pour une seule page dans Safari sous iOS?

Je me rends compte que je peux effacer manuellement le cache du navigateur, mais je préférerais ne rafraîchir que la page que je suis en train de regarder.

ahsteele
la source
Est-ce ce que vous pensez? apple.stackexchange.com/questions/73153/…
bassplayer7
@ bassplayer7 c'est proche mais pas tout à fait pareil. Commande + R actualise uniquement les ressources pour la page spécifique que vous traitez. Cela signifie que le code JavaScript lié de manière externe à partir d'un CDN serait également actualisé. Ceci exclut les ressources non référencées. Il est un contrôle à grain très fin accordée aux navigateurs de bureau et est super pratique pour le développement web.
ahsteele
Logique. En tant que développeur Web, je comprends votre point de vue pratique. Je suppose que vous le faites déjà, mais je ne peux pas m'empêcher de le mentionner - j'utilise cette application d'Adobe pour mon travail mobile. Et, je crois que redémarrer le Safari - aussi lourd qu’il soit - est au moins un rafraîchissement plus que le bouton. Je ne me suis pas assez amusé avec ça pour savoir exactement ce que ça rafraîchissait, cependant.
bassplayer7
Est-ce que le fait d'activer le bouton d'actualisation dans la barre d'adresse n'actualise pas également le contenu mis en cache?
Gerry

Réponses:

36

Forcer à cesser de fumer ne fonctionnait pas de manière fiable dans iOS 8. L’utilisation du mode privé pour les tests:

  1. Ouvrez la page en mode privé (et créez un signet pour pouvoir l'ouvrir ultérieurement).
  2. Lorsque vous devez actualiser, fermez le navigateur "onglet" (vous pouvez rester en mode Safari et privé).
  3. Ouvrez à nouveau la page (utilisez le signet que vous avez créé à l'étape 1).
Marc Stober
la source
1
Pas une bonne solution, mais elle semble être la meilleure solution pour laquelle iOS puisse travailler.
Brendan
2
Comment puis-je accéder au "mode privé"?
linuxdan
Dans Mobile Safari: appuyez sur l'icône de deux carrés pour afficher tous les onglets ouverts et afficher le bouton du mode "Privé" en bas à gauche. support.apple.com/frfr/HT203036
Matt Sephton
Depuis iOS 13.1.3, cela ne fonctionne plus.
timbo
11

Si votre téléphone est câblé sur votre ordinateur Apple / ordinateur portable, avec les outils de développement Safari ouverts (et une fenêtre active), vous pouvez appuyer sur:

Command Key + Option + R

Zmart
la source
Je parie que cela fonctionne si vous utilisez également un clavier Bluetooth avec votre téléphone.
Rinogo
@rinogo Negative. J'utilise le clavier magique Apple sur mon ipad pro et "cmd + shift + r" ne fait rien dans le navigateur Safari.
danielson317
7

Si vous forcez à quitter Safari (cliquez sur le bouton d'accueil, puis double-cliquez sur le bouton d'accueil, maintenez l'icône Safari enfoncée dans la barre multitâche, puis appuyez sur le point rouge), il semble que Safari effacera son cache. Mais cela effacera tout le cache, pas seulement une seule page.

Vous pouvez également effacer les cookies et les données Safari dans l'application Paramètres. Sous Avancé, vous pouvez effacer les données de sites Web individuels, ce qui peut fonctionner si vous connaissez tous les sites associés à la page Web que vous souhaitez vider.

hotpaw2
la source
1
Cela ne fonctionne pas pour moi (iOs 7.0.4).
Nabil Kadimi
3
Avec iOS 7, vous jetez l'application de la liste récente / multitâche vers le haut pour la forcer à quitter.
hotpaw2
1
iOS 7.1 ici, j'ai vérifié via les outils de développement à distance de Safari et il semble que les ressources ne sont effectivement pas mises en cache après la
fermeture forcée de
5

Vous pouvez forcer le périphérique à arrêter la mise en cache des fichiers en le connectant à un ordinateur à l'aide d'un câble et en activant le mode développeur Safari.

  • Activer Web Inspector sur le périphérique mobile:
    Paramètres> Safari> Avancé> Web Inspector
  • Activer les outils de développement dans Safari sur macOS:
    Safari> Préférences> onglet Avancé> Afficher le développement dans la barre de menus
  • Connecter l'appareil à l'ordinateur
  • Ouvrez le panneau des outils de développement pour le périphérique à partir de Safari sur l'ordinateur:
    Développez> iPhone de Example> example.com/page
  • Pour désactiver la mise en cache, accédez à l'onglet Réseau et assurez-vous que la petite icône indiquant «pas de cache» est bleue (elle ressemble à un cylindre barré).
  • Maintenant, vous devriez pouvoir cliquer sur Actualiser à tout moment sur l'appareil iOS et vous obtiendrez une version actualisée non mise en cache!

Si vous êtes un développeur Web, c'est le moyen idéal de le faire car vous avez maintenant accès au panneau d'outils de développement extrêmement utile. Et vous n'avez pas besoin de répéter un processus fastidieux si vous avez besoin d'obtenir une nouvelle version tout le temps, pas seulement d'effacer le cache une fois.

Si vous êtes simplement un utilisateur général essayant d'effacer son cache, vous pouvez utiliser l'une des autres méthodes décrites ici.


Mise à jour: Vous pouvez maintenant vous connecter à l'appareil via WiFi. Peut encore nécessiter une configuration initiale avec le câble, mais vous pouvez certainement vous connecter sans cela après cela.
Développer> Exemple iPhone> Se connecter via un réseau

squarecandy
la source
1

Supprimez les données mises en cache pour un seul site en allant dans Paramètres > Safari > Avancé > Données de site Web > Afficher tous les sites .

Appuyez sur Modifier en bas à droite de l'écran, puis faites défiler la liste ou effectuez une recherche dans le champ de recherche pour trouver le site Web que vous souhaitez effacer). Appuyez sur le rouge - icône à côté de l'adresse du site, puis appuyez sur le Supprimer bouton qui apparaît.

Retournez dans Safari et rechargez la page. Tous les artefacts du site seront rechargés.

Nick Graham
la source
Cela n'a pas fonctionné. Les éléments ne sont pas cliquables sur mon iPad (iOS 12).
cheesus SO cesser de nuire Monica
0

Sur Safari, activez le mode développeur. Ensuite, vous pouvez utiliser la combinaison suivante pour vider le cache:

Option-Key + Command-Mac-Key + E 

Je suppose que cela ne fera que supprimer le cache du site sur lequel vous vous trouvez à ce moment.

Erdinc Ay
la source
Malheureusement, vos instructions ne s'appliquent qu'à la version de bureau de Safari. La question portait sur la version iOS.
calum_b
-1

Appuyez deux fois sur le bouton d'actualisation.

Helga
la source
7
Est-ce que ça marche pour n'importe qui? Appuyez deux fois sur pour arrêter l'actualisation que j'ai commencée avec le premier toucher.
Brendan
Oui, c’est la seule chose qui a réellement fonctionné pour moi. Je ne sais pas si cela ne fait que lancer un safari dans le cul, mais ça marche.
Ben Rabidou
-3

vous pouvez ajouter un nombre aléatoire aller au script ou un lien src comme:

<link rel="stylesheet" href="css/main.css?rand=<?=$rand;?>" type="text/css" /> <script type="text/javascript" src="js/main.js?rand=<?=$rand;?>"></script>

Cela oblige Safari à recharger le fichier, car il pense qu'il s'agit d'un fichier différent.

utilisateur84981
la source
4
Comment cela fonctionne-t-il du côté de l'utilisateur?
nohillside
1
Ajoutez un paramètre aléatoire à l'URL en haut...?rand=15
Aaron Digulla le
Cela s'appelle "cache-busting", ce qui rend la chaîne d'URL unique comme le voit le navigateur. Ainsi, il ne trouvera jamais cette URL dans son cache. (Et le côté hôte ignore tout simplement le GETparamètre.) Mais, ce n'est vraiment pas la même chose que ce que l'OP demande.
Mike Robinson
@AaronDigulla Cela ne fonctionnera pas pour les ressources liées telles que les fichiers CSS et les images.
Flimm
-3

Appuyez longuement sur le bouton d'actualisation. iphone 6

Art Trzmiel
la source
6
Cela amène un menu avec "site de demande de bureau" dans Phone 7.
Flimm