Lassen Sie Safari Hintergrund-Tabs laden

Ich denke, das ist ein neues Verhalten seit Safari 11, aber ich bin mir nicht absolut sicher.

Ich neige dazu, Safari die ganze Zeit geöffnet zu lassen, mit mehreren Seiten mit Registerkarten, jede für ein anderes „Thema“.
Beim Neustart - wenn ich weniger herzhafte Kekse usw. gereinigt habe oder sogar bei der seltenen Gelegenheit, dass ich neu starte - wurden alle Registerkarten neu geladen, unabhängig davon, ob sie derzeit sichtbar sind oder nicht.

Dieses Verhalten hat sich geändert und jetzt ist jeder Tab, zu dem ich gehe, leer und wird nicht geladen, bis ich tatsächlich dorthin wechsle. Ich verstehe, dass die Philosophie darin bestehen könnte, Ressourcen zu sparen, bis Sie „beweisen“, dass Sie sie tatsächlich brauchen, aber ehrlich gesagt, wenn ich sie nicht bräuchte, wären sie überhaupt nicht offen.
Ich habe tatsächlich die Angewohnheit entwickelt, direkt nach dem Start schnell durch alle Registerkarten zu blättern, sodass ich die irritierende Verzögerung nur einmal sehe.

Weitere Irritation - die Version, die nach der 2-Sekunden-Pause geladen wird, ist immer noch die zwischengespeicherte Version, also müssen Sie sie sowieso sofort aktualisieren:/

Daher möchte ich dieses Verhalten beseitigen.

Ich möchte, wenn möglich, dass jeder Tab bereits mit der aktuellen, nicht zwischengespeicherten Version der Seite zum Zeitpunkt des Starts von Safari geladen ist. Danach kann ich mit meiner eigenen Aktualisierung umgehen, ich möchte nur nicht diese zusätzlichen 2 Sekunden für jede und jede Registerkarte bei der ersten Verwendung warten müssen.

Ich habe die Develop & Debug-Menüs bereits sichtbar, für den Fall, dass das 'Fix' darin enthalten ist, aber ehrlich gesagt ist mein Verständnis dieser Menüs suboptimal. Ich denke ehrlich gesagt, ich habe sie sichtbar, damit ich mich cool fühle, und nicht, weil ich tatsächlich weiß, wofür sie sind ;)

Dies ist derzeit Safari 11.0.2 auf El Capitan.

Antworten (1)

Mir ist keine Möglichkeit bekannt, das Standardverhalten von Safari zu ändern, aber diese Aufgabe kann leicht genug automatisiert werden, wenn Sie die Möglichkeit haben, ein AppleScript auszuführen.

Ich verwende selbst FastScripts und Keyboard Maestro , damit ich meinen vielen Skripten globale oder App-spezifische Tastaturkürzel zuweisen kann.

Dieses AppleScript lädt jeden Tab im Frontfenster von Safari neu.

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

Auf meinem System habe ich ihm eine Tastenkombination von gegeben R, was für mich eine gute Gedächtnisstütze ist.

Es ist einfach genug, das Skript zu ändern, um jede Registerkarte in jedem Fenster neu zu laden.

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

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

Ich benutze dieses so selten, dass ich ihm keine Tastenkombination gegeben habe und es manuell aus dem FastScripts-Menü aktivieren muss. (Dies ist auch ein Schutz, um zu verhindern, dass ich versehentlich einen Hotkey drücke und warten muss, bis jeder Tab neu geladen wird.)

-ccs