Safari cache kikapcsolás

Tags: #<Tag:0x00007f8a1d968f58> #<Tag:0x00007f8a1d9683a0> #<Tag:0x00007f8a1d96f830>

Sziasztok!

Van a Safariban olyan lehetőség, mint a Chrome-ban, hogy ne használja a cache-t, ha be van kapcsolva a Developer Tools?

Van. Develop->Disable caches. :D Rossz helyen kotorásztam.

1 Like

Jah, csak mindig kézzel kell bekapcsolnod, szóval nem kapcsol be alapból, ha megnyitod az eszköztárt. Vagy tévedek?
Ráadásul ha bekapcsolod, akkor minden oldalon érvényes lesz, nem pedig csak ott, ahol megnyitod. Vagy nincs erre valami plugin, ami ki bekapcsolja, ahol megvan nyitva az eszköztár?

Igen, nem olyan jó, mint a Chrome-é, ami csak az adott oldalra vonatkozik, csak akkor, ha a Developer Tools nyitva van. (Pont ezért kerestem a Developer Toolson belül valami beállítási lehetőséget.) Viszont a semminél sokkal jobb. A plugin jó ötlet, körülnézek.

Én meg utánanézek, hogy hogy lehet ilyen plugint írni :D

1 Like

Még a végén meghozod a kedvemet a Swifthez :D

A poén az, hogy megnéztem hirtelen és nem is Xcode-ban kell írni plugint, hanem a Safarinak van valami eszköze rá (Develop -> Show Extension Builder). Itt meg hirtelen nem találtam rá módot, hogy lekérdezzem aktív-e a menü.
A lényeg, hogy Applescripttel szerintem könnyebben meg lehet oldani a dolgot. A menüre kattintás már megvan (mármint, hogy egy adott elnevezésű menüt egy adott programban kattintson).

Nagy nehezen megszületett az Applescript. Persze ezt én Apple Script Editorral futtattam (elvileg lehet csinálni belőle alkalmazást).
Annyit csinál, hogy másodpercenként ellenőrzi, hogy az aktív alkalmazás az a Safari-e és ha igen, akkor ellenőrzi, hogy be van-e kapcsolva az Inspector és a Disable Cache menü. Ha egyik igaz, másik hamis, akkor kattint egyet a Disable Cache menün. Azaz, ha átváltunk egy tabra, ahol nincs bekapcsolva az Inspector, akkor kikapcsolja a Disable Cache-t. Ha pedig visszaváltunk, akkor bekapcsolja.

Persze egyébként a menü meglétét egy try - catch blokkal oldottam meg, ezért hibát ír ki leállítás után, de így egyszerűbb volt, mint egy ciklussal végigmenni a menubar elemein…

on CacheCheck()
	tell application "Safari"
		tell application "System Events"
			tell process "Safari"
				set DevelopMenu to menu bar item "Develop" of menu bar 1
				try
					set ShowWebInspertor to menu item "Show Web Inspector" of menu 1 of DevelopMenu
					set inspectorEnabled to false
				on error
					set inspectorEnabled to true
				end try
			
				set DisableCaches to menu item "Disable Caches" of menu 1 of DevelopMenu
				set cachesEnabledValue to value of attribute "AXMenuItemMarkChar" of DisableCaches
				set cachesEnabled to cachesEnabledValue is "✓"
			
				if inspectorEnabled is not cachesEnabled then
					click DisableCaches
				end if
			end tell
		end tell
	end tell
end CacheCheck

repeat
	set activeApp to ""
	tell application "System Events"
		set activeApp to name of first application process whose frontmost is true
	end tell

	if "Safari" is in activeApp then
		CacheCheck()
	end if

	delay 1
end repeat

Most ahogy nézem a kódot, még kimaradt egy try blokk, mert ha nincs bekapcsolva a Develop menü, akkor is hibára fut a kód…

2 Likes

中国是我的 :)

Cipősz cirke tésztával?

2 Likes

谷歌翻译