为减少HTML或XHTML页面大小,进行了哪些常见的优化?我想到的是:


删除注释,
删除多余的空格,
将重复的内联样式移动到CSS样式表,
等。

还有什么?哪个提供最大的性价比,或者可以由工具或模块自动执行?

评论

减少带宽(从而减少页面加载时间)的有效方法的可能重复方式?

我为重复的邮件道歉-意外的。但是很好奇:为什么这个问题比第一个更受欢迎?

可能是因为它以不同的方式被问到,却在主题和问题中缺少优化一词!

#1 楼

Google已概述并解释了他们的建议,以最大程度地减少有效负载大小。其中包括以下技术:


启用压缩
删除未使用的CSS
缩小JavaScript
缩小CSS
缩小HTML
延迟加载JavaScript
优化图像
提供缩放图像
从一致的URL提供资源

这些建议是其开源Firefox / Firebug附加组件的一部分项目称为Page Speed。与Yahoo!的YSlow插件类似。实际的Page Speed加载项将检查比该列表详细说明的更多优化。还提供了使用页面速度的说明。

Yahoo!的“加快网站访问速度的最佳做法”确定了一组类似的最佳做法: HTTP请求
使用内容传递网络
添加过期或缓存控制标头
Gzip组件
在顶部放置样式表
在底部放置脚本
/>避免CSS表达式
使JavaScript和CSS外部化
减少DNS查找数量

YSlow(图像链接)和Page Speed(图像链接)都将允许您在页面上运行测试,建议您可以做的事情,并向他们展示其内容建议已实施。

评论


只是一小部分:这些性能准则是从Steve Souders在Yahoo!的工作开始的。他的著作“高性能网站”概述了其中的原因以及背后的原因。这本书很容易阅读,内容丰富。

– Jesper M
2010-09-04 22:25

#2 楼

有人会说标记应该被压缩,所以我也应该这样。

关于WebReference的文章指出,使用mod_gzip Apache模块时,您会发现以下性能提升。


网站管理员通常看到150-160%
使用此模块,可以提高Web服务器的性能,并减少70%-80%的HTML / XML / JavaScript带宽
。总体
节省的带宽
大约节省30%到60%


评论


mod_gzip适用于Apache 1.3,该版本现已寿命终止(不再受支持-当然仍然可以使用)。 Apache 2系列的等效项是mod_deflate。

–删除
2010年7月17日下午6:58

#3 楼

这可能是不值得的。

我玩了一点点HTML中的空格删除操作,并发现gzip压缩后的有效负载大小仅减少了10%。


实际上,空格和换行符的删除正在完成压缩工作。我们只是添加了一些人工辅助的效率功能:

问题是,


GZIP正在为您完成90%的工作,因此这是一个疯狂的微优化。我的意思是,也许您是Google或Yahoo。

#4 楼

好吧,一个小小的:将标签名称和属性保持小写且一致(顺便说一下,这是标准要求)。它将压缩率提高一个或两个百分点。

评论


机壳有何不同?我觉得这很奇怪...

–格兰特·佩林
2010年7月10日,0:14

@Grant:压缩多个“ abcde”实例(大小写精确)要比各种“ ABCDE”,“ abcde”,“ Abcde”等容易。

–克里斯·W·雷亚(Chris W. Rea)
2010年7月10日,0:20

感谢您的提示,这很有意义。那时我的代码状态良好!

–格兰特·佩林
2010年7月10日,0:30

#5 楼

如果您的网站流量非常大,则可能要考虑使用超短实体ID和类名,因为它们会减小用于样式化的HTML页面和CSS页面的大小。

此外,请注意网站结构过于结构化;当确实不需要div和span部分时,很容易添加它们。您可能还需要考虑诸如对大型结果集和类似输出进行分页的策略。

实际上,这些优化的回报非常有限(对于分页策略,潜在的SEO缺点)是值得的适用于与Google流量类别不同的​​网站。只需遵循jessegavin的建议即可启用GZip / Deflate压缩并完成。

#6 楼

将常见的CSS,图片和JavaScript合并到一个文件中。这不会减少文件的大小,但是会减少http请求的数量。对于较小的文件,http开销远大于下载时间。编写结合CSS和javascript文件的脚本很容易,因此您可以在开发过程中更轻松地对其进行管理,但可以将它们部署到单个文件中。精灵以获取有关合并图像的更多信息。

此外,请查看Google的Closure Compiler。我没有使用过它,但是它声称可以使javascript下载并运行得更快。

评论


除非我没有记错,否则问题特别是关于减小HTML大小,而不是JS / CSS。另一个问题已经解决了。

–心怀不满的山羊
10年7月14日在11:51

#7 楼

正如其他人所说,最大的好处来自gzipping。

确保使用适当的HTML元素。代替<div class="page-title">Hello World</div>,请使用<h1>Hello World</h1>

显而易见的一点是:不要使用表格进行布局!使用像960.gs这样的简单网格系统(或滚动自己的轻量级版本)。 HTML大小之间可能会有很大的差异,特别是对于嵌套表。比较:

<table cellpadding="3" cellspacing="0" border="0">
<tbody>
    <tr>
        <td width="200">...</td>
        <td width="600">...</td>
    </tr>
</tbody>
</table>




<div class="colSmall">...</div>
<div class="colLarge">...</div>


#8 楼

如果您使用的是ASP.NET网站,请注意ViewState。它可以在页面中生成很大的隐藏字段,并在不必要时经常使它过载(我已经发现ViewState比页面的其余部分重)。 ,因为ViewState将随每个请求来回发送,这会减慢您的网站并增加流量。

解决方案在.net代码中。

#9 楼

有很多免费的网络性能分析和优化工具。您可以从生成的报告中编译自己的大型检查清单。

以下是Zoompf性能评估中的几个解释性要点-动态生成的内容(图像)。可以考虑离线绘制图像或调整图像的大小作为静态图像文件。
避免使用没有尺寸的图片标签。
Google Analytics(分析和广告)支持异步加载其JavaScript文件。如果您使用它们,则可以选择异步加载它们。


#10 楼

通常被忽略的策略是从页面中删除所有不必要的HTML代码。

对于任何给定的项目,您都必须根据(X)HTML版本来决定采用哪种策略?重新使用以及网站的使用方式。

(显然,由于我是新用户,我不能为每个答案发布一个以上的超链接,因此这些URL必须被复制并粘贴...我希望是洁净的。)


在HTML4和HTML5中,对于许多元素来说,不需要结束标记。也不需要body元素的开始标签。请参阅:

meiert.com/en/blog/20080601/optional-tags-in-html-4/

code.google.com/speed/articles/optimizing- html.html


HTTP URL的协议(http :)部分可以省略。

meiert.com/en/blog/20090218/performance-and -rfc-2396 /


使用像
这样的标签,您可以简单地省去XHTML语法(
)中使用的斜杠,除非您实际需要使用XHTML。
以下是一些小型HTML文档结构的示例:


html5doctor.com/ html-5-样板/

评论


我可以说它被忽略是有原因的。这可能比任何其他选择都要痛苦得多,并且很容易破坏站点。 IE处于Qurks模式

– WalterJ89
2010年7月17日在8:16



非常真实;这将对兼容性/可访问性产生影响。但这是需要牢记并在适合上下文时使用的东西。

– dzollman
2010年7月18日在22:30

#11 楼

其他人已经说过了,但他们只是没有充分说明:gzipping。减少60%到90%。

您可以对HTML进行的所有其他调整都需要更多的精力/维护,并且与gzip压缩和遗忘相比几乎没有任何效果。除非您是Google,否则他们根本不值得花时间。您并不是Google。 ,并使用一个指向原始实例的小代码替换每个重复的实例。因此,诸如保持属性顺序相同以及所有大小写相同的创作实践可以帮助gzipping完成其工作。)

噢,而且,如果您要在构建/服务过程中的某个时候自动缩小HTML,则不需要付出更多的努力/维护。此处列出了一些HTML缩小器:

https://stackoverflow.com/questions/728260/html-minification