7 votes

Faire en sorte que Safari charge des onglets en arrière-plan

Je pense qu'il s'agit d'un nouveau comportement depuis Safari 11, mais je n'en suis pas absolument certain.

J'ai tendance à laisser Safari ouvert en permanence, avec plusieurs pages d'onglets, chacun pour un "sujet" différent.
Au redémarrage - si j'ai nettoyé des cookies moins savoureux, etc., ou même dans les rares cas où je redémarre - il avait l'habitude de recharger tous les onglets, qu'ils soient visibles ou non.

Ce comportement a changé et maintenant chaque onglet auquel j'accède est vide et ne se charge pas tant que je n'y ai pas accédé. Je comprends que la philosophie soit d'économiser les ressources jusqu'à ce que vous "prouviez" que vous en avez réellement besoin, mais honnêtement, si je n'en avais pas besoin, ils ne seraient pas ouverts en premier lieu.
En fait, j'ai pris l'habitude de parcourir rapidement tous les onglets juste après le lancement, de sorte que je ne vois le délai irritant qu'une seule fois.

Autre irritation - la version chargée après la pause de 2 secondes est toujours la version mise en cache, vous devez donc l'actualiser immédiatement de toute façon :/

J'aimerais donc éliminer ce comportement.

Je veux, si possible, que chaque onglet soit déjà chargé avec la version actuelle, non mise en cache, de la page au moment où Safari a été lancé. Je peux gérer mon propre rafraîchissement après cela, je veux juste ne pas avoir à attendre ces 2 secondes supplémentaires pour chaque onglet lors de la première utilisation.

J'ai les menus Développement et Débogage déjà visibles, au cas où la "solution" s'y trouverait, mais franchement, ma compréhension de ces menus n'est pas optimale. Je pense qu'en toute honnêteté, je les ai affichés pour me sentir cool, plutôt que parce que je sais réellement à quoi ils servent ;)

Il s'agit actuellement de Safari 11.0.2 sur El Capitan.

2voto

Christopher Stone Points 662

Je ne connais aucun moyen de modifier le comportement par défaut de Safari, mais cette tâche peut être automatisée assez facilement si vous disposez d'un moyen d'exécuter un AppleScript.

J'utilise FastScripts y Maestro du clavier afin que je puisse attribuer des raccourcis clavier globaux ou spécifiques à mes nombreux scripts.

Cet AppleScript recharge tous les onglets de la fenêtre principale de Safari.

----------------------------------------------------------------
# Auth: Christopher Stone
# dCre: 2011/08/09 20:33
# dMod: 2015/11/14 16:46
# Appl: Safari
# Task: Reload Every Tab in front window.
# Libs: ELb
# Osax: None
# Tags: @Applescript, @Safari, @Reload, @Tabs, @Front, @Window
----------------------------------------------------------------

try

   tell application "Safari"

      set tabList to tabs of front window

      repeat with theTab in tabList
         tell theTab to do JavaScript "location.reload(true)"
      end repeat

   end tell

on error e number n
   stdErr(e, n, true, true) of me
end try

----------------------------------------------------------------
--» HANDLERS
----------------------------------------------------------------
on stdErr(e, n, beepFlag, ddFlag)
   set e to e & return & return & "Num: " & n
   if beepFlag = true then
      beep
   end if
   if ddFlag = true then
      if n  -128 then
         try
            tell application (path to frontmost application as text) to set ddButton to button returned of ¬
               (display dialog e with title "ERROR!" buttons {"Copy Error Message", "Cancel", "OK"} ¬
                  default button "OK" giving up after 30)
            if ddButton = "Copy Error Message" then set the clipboard to e
         end try
      end if
   else
      return e
   end if
end stdErr
----------------------------------------------------------------

Sur mon système, je lui ai donné le raccourci clavier suivant R ce qui est un bon moyen mnémotechnique pour moi.

Il est assez facile de modifier le script pour recharger chaque onglet dans chaque fenêtre.

----------------------------------------------------------------------------
# Auth: Christopher Stone
# dCre: 2011/08/09 20:33
# dMod: 2011/08/09 20:57
# Appl: Safari
# Task: Reload Every Tab in Every Window.
# Libs: None
# Osax: None
# Tags: @Applescript, @Reload, @Tabs, @Every, @Window
----------------------------------------------------------------------------

tell application "Safari"

    set tabList to tabs of windows

    repeat with theWindow in tabList
        repeat with theTab in theWindow
            tell (theTab's contents)
                do JavaScript "location.reload(true)"
            end tell
        end repeat
    end repeat

end tell

----------------------------------------------------------------------------

Je l'utilise si rarement que je ne lui ai pas donné de raccourci clavier et que je dois l'activer manuellement à partir du menu FastScripts. (Il s'agit également d'une mesure de protection qui m'évite d'appuyer sur un raccourci clavier par accident et de devoir attendre que tous les onglets se rechargent).

-ccs

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X