页面代码压缩真的需要吗?

Posted

技术标签:

【中文标题】页面代码压缩真的需要吗?【英文标题】:Page code compression is really needed? 【发布时间】:2011-10-24 17:12:18 【问题描述】:

我真的不喜欢页面中的代码写在一行中,当我浪费大量时间试图理解其中的内容时,真的在页面中编写压缩代码值得吗?根据编程原则,代码应该对其他将要维护它的程序员来说是可读的。

顺便说一句,html cmets 可以减少页面加载时间吗?因为它们对其他人可见。

<!-- comment goes here -->

但是java cmets?其他人看不到它们

<%-- comment goes here --%>

【问题讨论】:

【参考方案1】:

我认为您在这里混淆了许多概念。

页面压缩可以在不同级别进行。您可以在 Web 或 Web 应用程序服务器上使用 mod_gzipmod_deflate 或类似模块来压缩由 Web/应用程序服务器提供的原始字节。这通常会节省大量带宽,并且通常不会给 Web 开发人员带来问题,因为浏览器会在呈现页面内容之前对其进行解压缩(或在“查看源代码”上下文中显示源代码)。

“一行写一页”不是压缩。技术术语是缩小或混淆。它通常针对 javascript 完成,以减小所提供的 JavaScript 文件的大小;这可以大大减少文件大小,并具有难以被人类阅读者解析的额外好处。使用 JavaScript 缩小器的 Web 开发人员通常足够聪明,可以提供源代码的非缩小版本,因此调试不是问题。

我曾经工作过的一个以前的客户网站证明,当在线上采用 GZIP 压缩时,性能提升高达 40%,而在使用缩小的 JavaScript 文件(有数千个这样的文件)进行部署时,性能提升了 5-10%文件)。但同样,使用这些技术时,您的里程可能会有所不同。

最后,HTML cmets (&lt;!-- comment goes here --&gt;) 确实会影响性能,因为与没有 cmets 的页面相比,提供带有 cmets 的页面需要更多时间。对渲染的影响可能可以忽略不计,因为 cmets 经常被词法分析器剥离。对于 HTML 解析器首先解析的内联脚本标记中的 JavaScript cmets,情况并非如此。第二种类型的 cmets (&lt;%-- comment goes here --&gt;) 永远不会由应用服务器提供,因为它是 JSP 样式的注释,并且 JSP 编译器通常会忽略这些 cmets,因此不会在生成的 HTML 内容中生成任何 cmets。

【讨论】:

是的,它通常是为 JavaScript 完成的,但我已经遇到过许多为 HTML 执行此操作的网站,例如 xscores.com/soccer/soccer.jsp?sports=soccer&flag=sportData 这不是缩小;那只是去掉 CR 和 LF 字符(这可以节省带宽;想想 Google 可以节省的带宽)。同样,保留原始源代码或使用 Web 调试代理将内容格式化为可读格式会有所帮助。 有时在我尝试解压缩后,比如可读格式,出现很多错误,有时在 JavaScript 中完成的操作不再有效。 嗯,这取决于几个因素。将内容重新格式化回原始形式通常有效;错误可能已经是可能触发浏览器中的怪癖模式的内容的一部分。此外,从本地计算机上的文件运行的 Javascript 可能与提供的文件具有不同的行为。【参考方案2】:

在生产环境中使用 HTML 时,它并不打算被其他人阅读。通常,原始代码将是可读的,并且 HTML 和 JavaScript 之类的内容通常会被缩小以减少加载时间。

是的,您的浏览器必须下载的任何评论都会增加页面加载时间。

【讨论】:

【参考方案3】:

我真的不喜欢页面中的代码写在一行中,当我浪费大量时间试图理解其中的内容时,真的在页面中编写压缩代码值得吗?

可以

根据编程原则,代码应该对其他将要维护它的程序员来说是可读的。

这就是为什么将缩小作为构建过程的一部分进行的原因。致力于它的开发人员会得到格式合理的代码。

顺便说一句,HTML cmets 可以减少页面加载时间吗?但是java cmets?其他人看不到它们

如果它被交付给客户端,那么它会占用一些带宽。这可能是也可能不是大量的带宽,具体取决于上下文。

【讨论】:

【参考方案4】:

有些人这样做是为了阻止对其代码的检查,尽管通过一些努力,它可以格式化并再次可读。这有点像 Java 中的代码混淆。

【讨论】:

以上是关于页面代码压缩真的需要吗?的主要内容,如果未能解决你的问题,请参考以下文章

代码注释的艺术,优秀代码真的不需要注释吗?

代码注释的艺术——优秀代码真的不需要注释吗?

代码注释的艺术——优秀代码真的不需要注释吗?

代码注释的艺术——优秀代码真的不需要注释吗?

代码注释的艺术——优秀代码真的不需要注释吗?

代码注释的艺术,优秀代码真的不需要注释吗?