是否应该将用户脚本单独使用的库缩小?

时间:2018-05-15 11:32:40

标签: javascript require userscripts tampermonkey

在我的用户脚本中,我经常 JLRoutes.addRoute("login", handler: { (parameters: [AnyHashable: Any]!) -> Bool in let params = parameters as Dictionary<String, AnyObject> let authCode:String! = params["authkey"] as String if authCode != nil { [...] } } .responseString { (request, response, string, error) in println(string) } return true } else { self.authError() return false } }) return true } 一个自编的javascript库。我想知道这产生了多少负载。每次执行用户脚本时是否加载库(重新)?或者只是第一次加载,然后缓存?缩小它会产生重大影响吗?

我查看了tampermonkey docs,但他们没有详细说明这一点。他们只声明在脚本本身开始运行之前加载并执行了库&#34;&#34;

缩小此库有多重要?由于我经常对库进行更改,因此我宁愿避免每次都将其缩小的额外步骤。缩小这样一个库的优点和缺点是什么?

1 个答案:

答案 0 :(得分:1)

这是一个意见问题;而且,唉,“基于意见的”问题在Stack Overflow上不受欢迎(通常有充分的理由)。

此外,检查脚本的频率的确切细节也会发生变化。但这是通常/假设/习惯的工作方式:

  1. 安装脚本后,将获取@require库并将其保存到磁盘(现在作为扩展数据的一部分存储在LevelDB数据库中)。
  2. @require字符串更改时,将重新提取脚本。
  3. (¿可能?)如果脚本本身已更新(版本更改),则会重新提取脚本
  4. 有一次,Tampermonkey可能在每次运行脚本时都在提取脚本?!
  5. Tampermonkey用于在每次运行时获取带有@require URL的file:// d脚本,以帮助开发人员。但这停止了工作,不知道目前的状态是什么。
  6. 重点是,名义上,应该从磁盘或缓存运行一个必需的文件(带有机外网址)并且非常快。

    所以权衡:

    请勿最小化,因为:

    • 通常在用户脚本方案中没有性能差异。
    • 脚本更容易调试。
    • 开发/部署过程中的步骤较少。

    请尽量减少因为:

    • @require d脚本具有较大的安装基础,托管服务器负载是一个问题。
    • 文件足够大,最小化可以节省大量空间,比如100K。
    • 该文件也“正常”使用(EG <script>标签) - 因此带宽更为关键。 (不是每个人都有高速连接等)。
    • 你想让别人更难以“窃取”你宝贵的代码。 (这个原因列出了完整性,我不推荐它。)