Hello
As you know I'm curious so, I decided to compare Christopher scheme to the brute force one.
# brute force
use framework "Foundation"
set beg to current application's NSDate's |date|()
tell application "Safari" activate close every window repeat # Wait until the window is really available delay 0.1 if exists window 1 then exit repeat end repeat end tell
set theDiff to (beg's timeIntervalSinceNow()) as real tell application "SystemUIServer" using terms from scripting additions display dialog "effectué en : " & -theDiff & " secondes" --> display dialog "effectué en : 0,209477007389 secondes" end using terms from end tell
# Christopher scheme
use framework "Foundation"
set beg to current application's NSDate's |date|()
tell application "Safari" try set frontDoc to first window where its document is not missing value
tell frontDoc set URL of its document to theURL close (tabs whose index is not 1) end tell
close (windows where it is not frontDoc)
on error make new document with properties {URL:theURL} end try
end tell
set theDiff to (beg's timeIntervalSinceNow()) as real tell application "SystemUIServer" using terms from scripting additions display dialog "effectué en : " & -theDiff & " secondes" --> display dialog "effectué en : 0,006065011024 secondes" end using terms from end tell
Honestly I didn't imagine that there may be such a difference ;-)
Other question asked by the curious.
When I ran the brute force script for the first time, I got :
tell application "SystemUIServer" display dialog "effectué en : 0,209477007389 secondes" «event ascrgdut» display dialog "effectué en : 0,209477007389 secondes" end tell
When I ran it again, I got :
tell application "SystemUIServer" display dialog "effectué en : 0,209477007389 secondes" end tell
I'm not sure if I already asked here : is the double call with «event ascrgdut» appear on systems running in English ?
If it doesn't I will file a bug report.
Yvan KOENIG running Yosemite 10.10.4 in French (VALLAURIS, France) samedi 1 août 2015
|