问题 格式化动态生成的HTML - 没人关心?


我有 非常 在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的可读性对任何人都无关紧要吗?

我只是想知道这是否曾经让其他任何人足以让他/她为它提出一个“解决方案”(显然它必须是一个将其视为“问题”的人)。


10223
2017-10-13 23:28


起源

许多站点将完全删除空白以降低带宽成本。 - Novikov
Dupe of 格式化动态生成的HTML - 没人关心? - Michael Petrotta
确切的欺骗事实。 - Marko
我说关闭另一个,因为这个有更多的选票和答案。它们几乎同时发布,所以它不像另一个已经存在了一年。 - Sasha Chedygov
为了记录,我投票结束这个问题,因为你发布的另一个有更多的答案和投票。 - Sasha Chedygov


答案:


HAML 模板引擎是专门创建的,目的是生成正确的缩进,嵌套和格式化的HTML。没有理由为什么其他模板引擎不能做同样的事情。

所以,是的,这只是懒惰。


2
2017-10-14 00:29



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


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

当然如果你花时间缩进和格式化它会让我们这些懒得看的人看起来更好..


3
2017-10-13 23:35





好吧,如果您在将文件发送给用户之前对文件进行额外的传递以美化它,您将:

  1. 增加文件大小(下载速度较慢),因此让您的用户感觉您的网站“滞后”而且速度很慢(就是这样)

  2. 在你的服务器上增加了额外的开销,可能最大化并减慢甚至更多

除了帮助一两个阅读源代码的人(可以在大多数编辑器中自动美化)之外,你希望通过这个来实现它的价值吗?


2
2017-10-13 23:34



我打算给这个答案+1,但请注意,大多数关心文件大小的网站都使用gzip编码。额外的空格不应该为压缩的内容添加更多的文件大小。 - Jason S
@Jason S:“太多了”,当然。但它可以加起来,而且它的收益很少。 - Blindy
@Jason S:在你解压缩文件之后,浏览器必须浪费CPU周期来删除无用的空格。发布的格式良好的HTML只是浪费了生成时间,传输带宽和收件人处理时间。如果有一个地方你可以很容易变绿,就是这样。发送压缩没有空格。如果您需要调试它,只需使用格式化程序。 - Ira Baxter


喜欢与否,HTML是一个 浏览器可读 格式,不一定是用户可读的格式。工具(WYSIWIG编辑器,标记语言,如Markdown,MediaWiki等) 您最喜欢的Web框架)应该用于生成HTML。有很多程序可以让开发人员读取HTML;看其他帖子。

XHTML和XML生成工具在可读性方面有一定的承诺,因为它们的输出可以更容易地进行后处理(例如通过浏览器的源视图)以获得适当的缩进,但是(恕我直言)还不是很成熟,判断为所谓的“W3C XHTML兼容”网站的数量确实不是。较新版本的,例如,WordPress努力,但他们的扩展,插件等充满了坏(X)HTML,甚至没有考虑他们产生的JavaScript的数量。 (我们如何缩进呢?)

给我们的建议:

  1. (X)HTML生成代码应该是 对开发者可读。但请使用至少产生准可读性的东西。
  2. 了解您的浏览器 搜索 功能和使用正则表达式。
  3. HTMLTidy在它的许多伪装中,是你的朋友。在测试中使用它并将其输入与其输出进行比较

2
2017-10-14 00:10





我从来不在乎,因为如果我想看看格式很好的格式我可以 TIDY虽然跑了 在我看之前。


1
2017-10-13 23:30



我想如果你想要,你甚至可以通过过滤器运行页面来清理它,因为它正在服务。喜欢 perlmonks.org/?node_id=308488 - Adam


它过去一直困扰着我,但我也认为让它看起来不可读有它的优点。它是代理的半混淆代码。

但是,许多工具(例如FireBug)会在DOM结构中很好地格式化代码,因此对于开发人员而言,它实际上并不重要。


1
2017-10-13 23:33



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


要查看更好的格式化html,您可以使用Google Chrome的“Inspect Element”功能或Firefox中的firebug插件。我一直处理动态生成的html(使用php),而且我从不使用'view page source',这些其他工具的工作要好得多。


1
2017-10-13 23:33