为什么HTML5不包含将本地HTML加载到文档中的方法?

Mat*_*att 29 html5 language-features include

我最近考虑过这个问题.为什么HTML5 不能真正将HTML加载到您的文档中以分解您的HTML文件?

它支持几乎所有的其他资产(图片,视频,音频).

是的,我们有iframes,embeds,和objects,但他们的沙盒,并且不按照文档的其余部分的流动.

我想的是:

<h2>My wonderful application</h2>

<include src = "leftPane.html" type = "text/html" />

<include src = "main.html" type = "text/html" />

<include src = "footer.html" type = "text/html" />
Run Code Online (Sandbox Code Playgroud)

我希望有人向我解释这个.在我们制作的几乎所有Web应用程序中,我们使用某种形式的模板来分解我们的HTML,那么为什么HTML5不仅仅包含它呢?

我很感激你的(无焰)思想.

马特

yon*_*ran 20

事实证明,这已经出现在WHATWG邮件列表中:客户端包含提案:Shannon提出了你所说的内容,解析器在加载文档片段时必须阻止的位置.Ian Hickson拒绝了它,因为延迟成本太高.此外,它是许多Web服务器已经提供的一个简单功能,因此被认为不值得花费.

您可能希望使用seamless属性iframe来调查,这会导致将完整文档放在文档中,但就像任何块元素一样(从宿主文档继承样式).不过,我认为很多浏览器都不支持它.


Bar*_*aye 2

当然,每个请求都需要往返服务器 - 您能想象这可能导致的带宽问题吗?上面的代码片段会有 4 个请求(原始页面 + 3 个包含),当然还有浏览器渲染问题,然后是本地 JS 问题(即 DOM 在什么时候加载 - 你有 4 个 DOM 吗?)。

  • 此外,如果片段是可缓存内容,则不会有往返。 (3认同)