在 applescript(使用 MacOS automator)中,我可以在一段代码中操纵两个动作的顺序吗? (有利于速度)

In applescript (using MacOS automator) can I manipulate the order for two actions within one piece of code? (to benefit speed)

我有一段 applescript(添加在下面)基本上做两件事

  1. 抓取所选文本并将其提交给 url 请求(例如城市词典 url),以便在 safari window 中弹出结果(翻译或定义)
  2. 使用 curl 将一些使用情况统计信息推送到 google 分析。

添加 google analytics curl 推送部分 ('nr 2') 会使第一部分(根据最终用户的体验)显着变慢。我在这里的假设是,这个 google 分析部分(curl 推送)是在 url 请求之前(而不是之后或同时)完成的。 我怎样才能加快可见部分(即 url 请求),比如通过与 url 推送同时进行以确保 url 请求先出现?

on run {input, parameters}
    set output to "https://www.urbandictionary.com/define.php?term=" & urldecode(input as string)
    set Cntr_post to "https://www.google-analytics.com/collect?v=" & 1 & "&t=" & event & "&tid=" & "UA-99571xxx-1" & "&cid=" & 12345678 & "&ec=" & "EasyLookUp" & "&ea=" & "UrbanDictionary" & "&el=" & "xxx_test_cp" & "&aip=" & 1
    do shell script "curl " & quoted form of Cntr_post
    return output
enter code here
end run
on urldecode(x)
    set cmd to "'require \"cgi\"; puts CGI.escape(STDIN.read.chomp)'"
    do shell script "echo " & quoted form of x & " | ruby -e " & cmd
end urldecode

它按照上面的代码工作。但是注释掉 google 分析部分只会使第一个动作(带有 safari 弹出窗口的 url 请求)显着加快(平均 3.5 秒而不是 5.5 秒)。
我能否以分析部分(curl 推送)不延迟第一部分的方式更改此代码?

更新 1:这里是一张图片,所有内容都合而为一 canvas

更新 2:如果我拆分代码,使分析部分 运行 之后可以工作,但它不会 运行 'in the background' 它会等到第一个完成(这意味着它会等到 safari 弹出窗口关闭)。但是现在这似乎是最好的选择。

感谢 user3439894 和 Ted Wrigly 的帮助!
@Ted Wrigly:接下来我会试试你的答案,谢谢!

很可能您的脚本正在等待 do shell script 中的 google analytics curl 命令完成,然后再继续。如果您不关心该命令的输出,并且满足于在后台并行使用它 运行,请将第四行更改为以下内容:

do shell script "curl " & quoted form of Cntr_post & " &> /dev/null &"

添加的代码将 curl 命令的任何输出定向到 /dev/null(即,将其遗忘),将 curl 命令释放到后台,并立即 returns 处理其余部分苹果脚本。有关详细信息,请参阅 relevant section of Technical Note TN2065