动态生成的HTML格式化——没有人关心吗?

11

我在 Web 开发方面几乎没有经验,所以这可能是一个非常基本的问题。

就我目前有限的经验(一点 PHP 和一点 Ruby on Rails)而言,动态生成的 HTML 的格式似乎并不重要;它最终看起来很丑,有奇怪的缩进,但没人介意,因为这不是用户所看到的。

当然,除非用户是开发人员,或者只是想查看一些 HTML 以尝试学习一些东西的人。

也许你不知道我在说什么,所以让我举个例子。

在 Ruby 文件中,我可能会有这样的代码:

<h1>Heading</h1>

<div>
    <%= render :partial => '/layouts/body' %>
</div>

然后,在我的“/layouts/_body.html.erb”文件中,我可能有这样的代码:

<p>Here is some content!</p>

<ul>
    <li>List item 1</li>
    <li>List item 2</li>
    <li>List item 3</li>
</ul>

所有这些内容在渲染完成后看起来都很好。但如果用户尝试查看源代码,HTML代码将会非常糟糕:

    <h1>Heading</h1>

    <div>
        <p>Here is some content!</p>

<ul>
    <li>List item 1</li>
    <li>List item 2</li>
    <li>List item 3</li>
</ul>

    </div>

显然,这不是一件大事。如果普遍观点只是“这没关系”,我完全可以理解。但这难道就是事情必须的方式吗?HTML的可读性难道对任何人都没有意义吗?

我只是好奇是否有其他人也因此而烦恼到想出一个“解决方案”(显然,这必须是首先视其为“问题”的人)。


3
为了减少带宽成本,许多网站会完全删除空白字符。 - Novikov
2
我建议关闭另一个,因为这个问题有更多的投票和答案。它们几乎同时发布,所以不像另一个问题已经存在了一年。 - Sasha Chedygov
1
记录一下,我投票关闭这个问题,因为你发布的另一个问题有更多的答案和投票。 - Sasha Chedygov
@musicfreak,@Marko,@Michael:哇,对不起,伙计们!发生了什么事情是我点击了“发布您的问题”,然后被一个错误屏幕所拦截,我(错误地)解释为问题没有提交。所以我回去再次发布了。回想起来,我应该先检查第一个问题是否已经通过。无论如何,感谢你们帮我清理。;) - Dan Tao
显示剩余2条评论
13个回答

3

语义正确的验证过的HTML非常重要。一些空格和换行并不重要 - 任何体面的格式化程序都可以轻松解决这个问题。大多数情况下,除了浏览器之外,没有其他东西会查看它,因此与验证相比,它确实不那么重要。

当然,如果您花费时间进行缩进和格式化,对于那些关心这些细节的人来说,它会更好看。


2

要查看格式良好的HTML,您可以使用Google Chrome的“检查元素”功能或Firefox中的firebug插件。 我经常处理动态生成的HTML(使用php),我从不使用“查看页面源代码”,这些其他工具效果更好。


2
如果在将文件发送给用户之前再对其进行美化处理,您将会做以下几件事情:
  1. 增加文件大小(下载速度变慢),让用户感觉您的网站“滞后”和缓慢(实际上是这样)

  2. 给服务器带来额外的开销,可能会使服务器达到最大负荷并进一步减慢速度

除了帮助阅读源代码(大多数编辑器都可以自动美化)的一两个人之外,您还希望通过此举实现什么目的,值得这样做吗?

我本来想给这个答案点赞,但请注意大多数关心文件大小的网站都使用gzip编码。额外的空格不应该增加压缩后内容的文件大小。 - Jason S
@Jason S: “Much” 确实没错。但它会累加,而且几乎没有什么好处。 - Blindy
@Jason S:不管你喜不喜欢,解压文件后,浏览器必须浪费 CPU 周期来删除无用的空格。精美格式化的 HTML 只是生成时间、传输带宽和接收方处理时间的浪费。如果有一个地方可以轻松做到环保,那就是这里。发送时去掉空格并进行压缩。如果需要调试,请使用格式化程序。 - Ira Baxter

2
爱它或不爱它,HTML是一种浏览器可读的格式,而不一定是用户可读的格式。应该使用工具(WYSIWIG编辑器、标记语言如Markdown、MediaWiki等和您喜欢的web框架)来生成HTML。许多程序可用于使HTML对开发人员可读;请参见其他帖子。
XHTML和XML生成工具在可读性方面具有一些优势,因为它们的输出可以更容易地进行后处理(例如通过浏览器的源视图),以获得适当的缩进,但是(依我之见)还不够成熟,这可以从所谓的“W3C XHTML兼容”的网站数量来判断。例如WordPress的新版本正在努力改进,但是它们的扩展、插件等都充斥着糟糕的(X)HTML,甚至没有考虑到它们产生的JavaScript的数量。(我们该怎么缩进?)
现在的建议:
1.(X)HTML生成代码应该对开发人员可读。但请使用至少生成一些准可读的代码。 2.学习您的浏览器的搜索功能并使用正则表达式。 3.HTMLTidy,在其许多变体中,是您的朋友。在测试中使用它,并将其输入与输出进行比较。

2

HAML模板引擎的目标是生成正确缩进、嵌套和格式化的HTML,其他模板引擎也可以达到相同的效果。因此,使用其他模板引擎不是因为技术原因,而是因为懒惰。


我已经开始使用HAML和SASS,并且非常喜欢它们。我理解其他答案的观点,但我确实喜欢至少有一些选项适用于我们这些希望HTML从一开始就可读(并且可能在大规模生产网站上工作)的人,而无需用户端进行额外处理。 - Dan Tao

1

我从不真的在意,因为如果我想要查看格式良好的HTML,我可以在查看前通过TIDY运行它


我想,如果你愿意的话,甚至可以通过过滤器运行页面以在提供服务时进行清理。就像http://www.perlmonks.org/?node_id=308488。 - Adam

1

这在过去曾经困扰过我,但我也认为让代码看起来难以阅读有其优点。这是一种半混淆的代码,通过代理实现。

然而,许多工具(如FireBug)会将代码格式化为DOM结构,因此对于开发人员来说,这并不是很重要。


大多数开发人员使用Firebug或其他开发工具,因此他们甚至看不到源代码的格式如何。对于最后一部分点赞。 - Sasha Chedygov
在Firebug中显示的格式良好的HTML是浏览器对原始HTML的解释。如果原始HTML包含错误,则浏览器对HTML的解释将与原始HTML不同,并且可能与开发人员预期的不符。HTML的格式可能对浏览器无关紧要,但正确性很重要,如果原始HTML格式良好,则更容易确保正确性。 - Tom

1

普遍的观点是“这并不重要”,因为如果您确实想查看它,那么有很多格式化程序可用,并且使用自动格式化程序会浪费系统资源。

对于需要考虑的情况,您可以考虑以下几点:

  • 选择一种易于操作的语言
  • 定义编码标准
  • 使用类似HTMLTidy的工具,无论是强制执行编码标准还是自动格式化HTML

1

查看源代码时,如果缺少 div 或样式,会让人感到烦恼。我总是尽力生成具有良好布局的任何 html,因为99%的情况下,都是我需要查找错误。

因此,在我的观点中,这很重要,即使它不是第一优先级,它也应该作为第二或至少第三优先级,在我的看法中,当然是这样。

现在,作为 C# 开发者,我通常将源代码复制到 Visual Studio 中,并进行 ctrl+k+f 缩进代码,以便更容易查看。

其他 IDE 可能也有类似的功能可供开发者使用,以解决此类小问题。


0

你说得对,这实际上并不重要,如果使用不同的函数和类,很难避免。

如果您需要源代码正确格式化,大多数集成开发环境和面向编程的编辑器都包含一个将代码整理成正确缩进版本的功能。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接