摘要
- W3C 于 2013 年 2 月 14 日发布 HTML Templates 首份公开草案,提出把可重复使用的 DOM 子树先放在惰性状态,日后再实例化。
- 2014 年的 HTML 文本把
<template>纳入语言本身。标签中的标记存入template.content指向的DocumentFragment;脚本可复制、填充,再插入正在运行的网页。
新闻编辑部最不缺的,就是“再来一张一样的卡片”。栏目页上每篇报道都要有图片、标题、导语和链接。旧办法可以把一张空卡片藏在网页角落,也可以用脚本一段段拼 HTML 字符串。两种办法都像为了复印一页纸,先偷偷造了半台复印机。浏览器明明会解析 HTML,却没有一个明确的位置,能存放“已经解析、暂时不上场”的页面片段。
W3C 2013 年 2 月 14 日的首份公开草案给了这个位置。作者在 <template> 中写普通 HTML,浏览器照常把它解析为节点,再把这些节点留在惰性的区域。需要新卡片时,脚本从模板内容做出一份副本。页面结构先准备好,何时出现、装进哪篇报道,由编辑部决定。
这间样板房有一道容易找错的门。2014 年 2 月的 HTML 5.1 工作草案说明,内容存在 template.content 对应的 DocumentFragment,归一个没有浏览上下文的独立文档所有。脚本在里面不运行,表单控件不会混进现场提交,模板标签自身也不占可见版面。源码看着像把家具摆在标签肚子里;DOM 却把它安置在专门的库房。
那份草案还安排了一群猫登场。示例先在模板里写好表格行,再为每只猫复制一行,把名字、毛色等填进单元格,最后加入表格。换成新闻卡片,过程一样:复制结构,为这一篇填标题、照片和链接,再把副本放到页面。下一篇另拿一份。样板房仍保留原样,免得第十九条新闻继承第十八条的标题。
2014 年 10 月 28 日的 HTML5 推荐标准正式收录这套机制。W3C 发布记录列出独立文档从 2013 年工作草案到 2014 年工作组说明的轨迹。存放模板的规则进入 HTML 主体,独立草案也就完成了它的搬家任务。
现行 HTML 标准仍把 <template> 描述为可由脚本复制并插入的 HTML 片段。它明确规定,模板在渲染时不显示,内容保存在关联的片段里,复制时连同后代节点一起复制。浏览器负责准备与保管;作者负责为每份副本写入真正的内容。一个什么都不显示的标签,竟能帮网页把重复劳动收拾得很体面。
样板房的笑话在于,浏览器忙着解析、造节点、隔离、复制,读者却看不到它本人。读者看到的是一排准确摆放的新闻卡片。基础设施最舒服的时刻,往往就是有人把第十九张卡片放上去,没有人想起那间房还锁着。
会员简报
档案背景详情
使用相应会员等级登录,即可解锁完整简报与来源注释。
仅限 Strategic Circle
Strategic Circle
所有读者均可浏览。加入并登录后可解锁档案简报。
加入 Strategic Circle仅限 Leadership Alliance
Leadership Alliance
符合条件的 IP 资产所有者和管理层可登录查看 Leadership Alliance 简报。
加入 Leadership Alliance





