繁体   English   中英

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

[英]How to compress/decompress strings in a userscript?

我一直在试图弄清楚为什么我正在使用的用户脚本在Firefox中运行缓慢但在Chrome和Safari中炙手可热。 我发现的一个原因(尽管可能不是唯一的原因)是用户脚本的大文件大小产生了很大的影响。 该脚本中有十个书长字符串,文件大小为3.8 MB。 如果我删除字符串,脚本会再次变快 - 基本上浏览器中的所有内容都会在文件加载时停止(当时正好用于典型的用户输入交互)。

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

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

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

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

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



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

压缩文本可能会减少70%的字节数,但是不能在用户脚本中使用二进制文件。 你必须对它进行base64编码,你的脚本突然不再短了。

然后你必须同时对它进行base64解码,并为每次使用使用js解压缩数据 这两个操作都会在JS中扼杀时间和内存。
维护脚本和/或更改文本将会非常繁琐。

似乎很多工作可能带来负面收益。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM