2012-01-26 63 views
2

我正在写一个javascript自定义缩小器,我想知道如果我需要强制换行符在一行中的一定数量的字符之后,或者它根本不重要?javascript可以运行多少行?

例如,我可以将整个脚本缩减为包含数千个字符或每n个字符的单个行,我可以插入一个换行符(在js代码中的可接受点)将其放到下一行。

是否有理由这样做,或者是否JavaScript /浏览器不关心有多少个字符在一行?

+0

你应该不需要。其他缩小器也将生成的JavaScript放在一行上。只是出于兴趣,为什么你不能使用现有的缩微粉? – Bojangles

+0

1.这是一个有趣的项目,2.我需要以特定的方式将其插入到我的框架中,以至于我最终还是要移植一个现有的项目。通过看别人和建立我自己的,我得到的端口和知识在几乎相同的时间:) – johnnietheblack

+1

啊对。我几乎期待这些答案! +1写你自己的东西:-) – Bojangles

回答

1

您可以将整个脚本放在一行上,这对解析器没有任何影响。

但是,将内容分解到大约4kB的行可能会有利于下载程序,略微提高性能。

+2

第二条评论背后的逻辑是什么? – paislee

+1

添加换行符以提高性能毫无意义 – Esailija

+0

嗯,只是从我从PHP中的socket函数中学到的东西。虽然我可能是错的。也许它只适用于PHP套接字函数,而不适用于一般的下载。 –

2

我不想在我的网站上下注各种网络服务器,代理服务器,Internet Explorer等,所有这些都不是窒息在巨大的行长度。当然,我不知道如何定义巨大的,但是jQuery--作为一个例子 - 看起来像它每行约512个字符。这样说,如果它允许我选择是否每x个字符都有换行符,我宁愿使用缩小器。

+0

嗯,很好的洞察力...我应该使它可调,然后设置一个建议的长度(即使它是“从不”) – johnnietheblack

+0

你建议缩小的jQuery每行只有512个字符? – 2012-01-26 21:46:25

+0

我*为*。看了更多的细节,我将澄清到约1,000。不管确切数字如何,尽管事实如此 - 正如另一张海报所指出的那样 - 这完全是合法的JS。我建议在通过互联网传输文件时,语言不是唯一的限制因素。 –

2

对于很长的一行JavaScript有一些缺陷。以下是来自Closure Compiler的常见问题解答(this link):

为什么编译脚本中存在随机换行符?

Closure Compiler每500个字符左右有意添加换行符。防火墙和代理有时会破坏或忽略长行很长的JavaScript文件。每500个字符添加换行符可防止出现此问题。删除换行符对脚本的语义没有影响。对代码大小的影响很小,编译器优化了换行符的放置位置,以便在对文件进行压缩时,代码大小的损失更小。