我一直在努力弄清楚为什么我正在使用的用户脚本在Firefox中运行缓慢但在Chrome和Safari中炙手可热。我发现的一个原因(尽管可能不是唯一的原因)是用户脚本的大文件大小产生了很大的影响。该脚本中有十个书长字符串,文件大小为3.8 MB。如果我删除字符串,脚本会再次变快 - 基本上浏览器中的所有内容都会在文件加载时停止(当时正好用于典型的用户输入交互)。
所以我认为它可能有助于预压缩字符串,然后在运行期间根据需要解压缩。任何人都有在用户手册中执行此操作的策略吗?
答案 0 :(得分:3)
以下是一些未经测试的想法:
从Greasemonkey切换到Scriptish。 Scriptish通常表现得更好。
a)将文本拆分为单独的文本文件
b)将这些文件放在安装脚本的位置。无需压缩。
c)使用@resource
directives指向每个文件;每个文件一个。
d)在您的代码中,使用GM_getResourceText()
Doc在您需要的时候获取所需的文本。
将文本拆分为文件,将它们托管在您自己的支持gzip的服务器(可能是您的本地计算机)上,然后使用GM_xmlhttpRequest
按需获取文件。
服务器可以自动gzip文件,或者你可以预压缩它们以节省几毫秒。
至于在用户脚本中存储压缩字符串;很难看出这对性能有何帮助。
压缩文本可能会减少70%的字节数,但是你不能在用户脚本中使用二进制文件。你必须对它进行base64编码,你的脚本突然变得不再那么短了。
然后你必须同时对它进行base64解码,并且每次使用都需要unzip data using js。这两个操作都会扼杀JS中的时间和记忆 维护脚本和/或更改文本将会非常繁琐。
似乎有很多可能产生负面收益的工作。