【发布时间】:2010-09-30 00:49:51
【问题描述】:
我想预先转义部分 javascript 代码,然后以 eval(unescape([code])) 的形式将其包含在我的页面中。我会牺牲性能吗?
【问题讨论】:
标签: javascript obfuscation javascript-framework
我想预先转义部分 javascript 代码,然后以 eval(unescape([code])) 的形式将其包含在我的页面中。我会牺牲性能吗?
【问题讨论】:
标签: javascript obfuscation javascript-framework
不必担心对蜘蛛隐藏您的 JavaScript 代码。这应该是您最不关心的问题,尤其是因为他们懒得看它(除了寻找更多要抓取的链接)。
http://googlewebmastercentral.blogspot.com/2007/11/spiders-view-of-web-20.html
【讨论】:
eval 很慢,通常被认为是邪恶的(持保留态度)。 Don't eval what you don't need to.
如果您想对蜘蛛隐藏某些内容,请使用外部脚本并设置您的 robots.txt。
“好”蜘蛛会接受这一点,“坏”蜘蛛无论如何都会看一看。
【讨论】:
例子
var \u0062\u0061\u006E\u0061\u006E\u0061 = "\u0062\u0061\u006E\u0061\u006E\u0061";
被解析为
var banana = "banana";
(仅适用于不区分大小写的字母数字数据)
parseInt("banana", 36);
> 683010982
683010982 .toString(36);
> "banana"
如果您将数据拆分并分隔数字,这可能适用于某些类型的数据。
你可以找到一个实现here...
base64_encode("banana banana banana!")
> "YmFuYW5hIGJhbmFuYSBiYW5hbmEh"
base64_decode("YmFuYW5hIGJhbmFuYSBiYW5hbmEh")
> "banana banana banana!"
打包的东西比 base-64 小一点。不太流行的格式,可能需要挖掘实现或自己制作。
【讨论】: