gpt4 book ai didi

javascript - 如何压缩/解压缩用户脚本中的字符串?

转载 作者:行者123 更新时间:2023-11-30 12:55:59 25 4
gpt4 key购买 nike

我一直在努力弄清楚为什么我正在处理的用户脚本在 Firefox 中速度很慢,但在 Chrome 和 Safari 中却非常出色。我确定的一个原因(虽然可能不是唯一的原因)是用户脚本的大文件大小有很大的影响。该脚本中有十本书长度的字符串,文件大小为 3.8 MB。如果我删除字符串,脚本会再次变快——基本上浏览器中的所有内容都会在文件加载时停止(就在典型的用户输入交互时)。

所以我认为预压缩字符串可能会有所帮助,然后在运行期间根据需要解压缩。有人有在用户脚本中执行此操作的策略吗?

最佳答案

以下是一些未经测试的想法:

  • 从 Greasemonkey 切换到 Scriptish。 Scriptish 通常表现更好。

  • a) 将文本拆分成单独的文本文件。
    b) 将这些文件放在您安装脚本的位置。无需压缩。
    c) 用 @resource directives 指向每个文件;每个文件一个。
    d) 在您的代码中,使用 GM_getResourceText()Doc在您需要的时候只获取您想要的文本。

  • 将文本拆分成文件,将它们托管在您自己的支持 gzip 的服务器(可以是您的本地计算机)上,然后使用 GM_xmlhttpRequest 按需获取文件。
    服务器可以自动 gzip 文件,或者您可以预压缩它们以节省几毫秒。



至于在用户脚本中存储压缩字符串;很难看出这对性能有何帮助。

压缩您的文本可能会减少字节数,比方说,70%,但您不能在用户脚本中包含二进制文件。您将不得不对其进行 base64 编码,并且您的脚本突然不再短了。

然后你必须同时使用 base64 解码它,并且 unzip data using js每次使用。这两个操作都会消耗 JS 的时间和内存。
维护脚本和/或更改文本会更加乏味。

似乎有很多工作可能会带来负面 yield 。

关于javascript - 如何压缩/解压缩用户脚本中的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19098550/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com