【问题标题】:Should a library used solely by userscripts be minified?是否应该缩小仅由用户脚本使用的库?
【发布时间】:2018-05-15 11:32:40
【问题描述】:

在我的用户脚本中,我经常@require 一个自写的 javascript 库。我想知道这会产生多少负载。每次执行用户脚本时是否都会(重新)加载库?还是只是第一次加载,然后缓存?缩小它会产生重大影响吗?

我查看了tampermonkey docs,但他们没有对此进行详细介绍。他们只声明库“在脚本本身开始运行之前加载并执行”

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

【问题讨论】:

  • 由于我收集了相当多的“基于意见”的近距离投票,如果我重新提出问题“缩小仅由用户脚本使用的库的(不利)优势是什么”会有所帮助吗? “?
  • 阿兰菲,它可能。但是,我也看到一些这样的短语也被关闭了。无论如何,在我的观点中,这个问题是有道理的。

标签: javascript require userscripts tampermonkey


【解决方案1】:

此外,脚本检查频率的精确细节也会发生变化。但这是它通常/应该/过去的工作方式:

  1. 安装脚本后,@require 库被提取并保存到磁盘(现在作为扩展数据的一部分存储在 LevelDB 数据库中)。
  2. @require 字符串改变时,脚本被重新获取。
  3. (¿也许?)如果脚本本身已更新(版本更改),则会重新获取该脚本
  4. 有一次,Tampermonkey 可能在每次脚本运行时都在获取脚本?!
  5. Tampermonkey 用于在每次运行时获取带有file:// URL 的@required 脚本,以帮助开发人员。但这停止工作并且不确定当前状态是什么。

重点是名义上,一个必需的文件(带有离机 URL)应该从磁盘或缓存中运行并且速度非常快。

所以取舍:

不要最小化,因为:

  • 在用户脚本场景中,通常不会产生性能差异。
  • 脚本更容易调试。
  • 开发/部署过程中的步骤更少。

尽量减少因为:

  • @required 脚本拥有庞大的安装基础,托管服务器负载是一个问题。
  • 文件足够大,最小化可以节省大量空间,例如 100K。
  • 该文件也被“正常”使用(例如<script> 标签)——因此带宽更为关键。 (不是每个人都有高速连接等)
  • 您想让某人“窃取”您宝贵的代码变得更加困难。 (出于完整性考虑,我不推荐这样做。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-02-03
    • 1970-01-01
    • 2012-06-12
    • 1970-01-01
    • 1970-01-01
    • 2011-02-26
    • 2014-12-18
    • 1970-01-01
    相关资源
    最近更新 更多