我将电子邮件正文中的 HTML 存储在 SQL Server nvarchar(max) 列中。在进入的过程中最小化 HTML 有什么好处吗?
通过最小化我的意思是在 HTML 文本流中删除多余的空格和回车/换行符。我的术语可能不太正确:我不打算删除任何 HTML 标记/注释或类似的东西。
我所说的好处是指存储空间的效率、插入/检索的速度,因此好处集中在数据库方面。
如果值得做,我应该注意什么(例如,如果我用一个空格替换换行符,它可能会在以后错误地呈现 HTML)?
我将电子邮件正文中的 HTML 存储在 SQL Server nvarchar(max) 列中。在进入的过程中最小化 HTML 有什么好处吗?
通过最小化我的意思是在 HTML 文本流中删除多余的空格和回车/换行符。我的术语可能不太正确:我不打算删除任何 HTML 标记/注释或类似的东西。
我所说的好处是指存储空间的效率、插入/检索的速度,因此好处集中在数据库方面。
如果值得做,我应该注意什么(例如,如果我用一个空格替换换行符,它可能会在以后错误地呈现 HTML)?
HTML 将仅作为 BLOB 存储在数据库中。你将无法解析它、搜索它等(好吧,从技术上讲你可以,但这很愚蠢)。在这种情况下,您可以在客户端(取消)压缩它并将其发送+存储为数据库中的 varbinary(max)。
权衡是管理压缩的 CPU 时间与增加的存储 + 网络流量。
我不会清理 HTML,因为你会失去可读性和可能的原始内容。
你仍然需要一个完整的 HTML 解析器来理解什么是 HTML,什么不是。大多数浏览器都会做一些“修复”,以使原本无法呈现的 HTML 以图形方式呈现——以这种方式,如果不完全解析树是不可能的。
有人可能会在错误而不是恶意中更容易地将一些糟糕的 HTML 粘贴到您的“简单”解析器中。不要从事修复 HTML 的业务,逐字处理,让不良内容自行解决。