Hacer que Safari cargue pestañas de fondo

Creo que este es un comportamiento nuevo desde Safari 11, pero no estoy absolutamente seguro.

Tiendo a dejar Safari abierto todo el tiempo, con varias páginas de pestañas, cada una para un 'tema' diferente.
Al reiniciar, si he estado limpiando cookies menos sabrosas, etc., o incluso en esa rara ocasión que reinicio, solía recargar todas las pestañas, ya sea que estén visibles o no.

Este comportamiento ha cambiado y ahora cada pestaña a la que voy estará en blanco y no se cargará hasta que realmente cambie a ella. Entiendo que la filosofía podría ser ahorrar recursos hasta que 'demuestres' que realmente los necesitas, pero honestamente, si no los necesitara, no estarían abiertos en primer lugar.
De hecho, he desarrollado el hábito de hojear rápidamente todas las pestañas justo después del lanzamiento, por lo que solo veo la demora irritante una vez.

Más irritación: la versión que se carga después de la pausa de 2 segundos sigue siendo la versión almacenada en caché, por lo que debe actualizarla inmediatamente de todos modos:/

Así que me gustaría eliminar este comportamiento.

Quiero, si es posible, que cada pestaña ya esté cargada con la versión actual, no almacenada en caché, de la página en el momento en que se inició Safari. Puedo manejar mi propia actualización después de eso, solo quiero no tener que esperar esos 2 segundos adicionales para cada pestaña en el primer uso.

Tengo los menús Desarrollar y Depurar ya visibles, en caso de que la 'solución' esté ahí, pero, francamente, mi comprensión de esos menús no es óptima. Creo con toda honestidad que los tengo visibles para hacerme sentir genial, en lugar de porque realmente sé para qué son;)

Este es actualmente Safari 11.0.2 en El Capitan.

Respuestas (1)

No conozco ninguna forma de alterar el comportamiento predeterminado de Safari, pero esta tarea se puede automatizar con bastante facilidad si tiene los medios para ejecutar un AppleScript.

Yo mismo uso FastScripts y Keyboard Maestro , por lo que puedo asignar atajos de teclado globales o específicos de la aplicación a mis muchos scripts.

Este AppleScript recargará todas las pestañas de la ventana frontal 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
----------------------------------------------------------------

En mi sistema le he dado un atajo de teclado de R, que es un buen mnemotécnico para mí.

Es bastante fácil modificar la secuencia de comandos para volver a cargar cada pestaña en cada ventana.

----------------------------------------------------------------------------
# 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

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

Uso este tan raramente que no le he dado un atajo de teclado y tengo que activarlo manualmente desde el menú FastScripts. (Esto también es una medida de seguridad para evitar que presione una tecla de acceso rápido por accidente y tenga que esperar a que se recargue cada pestaña).

-ccs