HTML portal 语法
在 HTML 中,portal 是一个实验性的新标签,它的目标是让页面跳转变得更加快速和平滑。
在传统网页中,我们通常使用 a 标签跳转页面,或者使用 iframe 标签嵌入其他页面。但这两种方式都有缺点:
a:跳转时会重新加载整个页面,过程比较 “生硬” 。iframe:虽然能嵌入页面,但交互不够自然,性能也不理想。
而 portal 提供了一种新方式:提前在后台加载目标页面,然后通过动画的方式无缝切换过去,让用户几乎感觉不到 “跳转” 的过程。
语法:
<portal src="链接地址"></portal>说明:
portal 标签支持以下属性。
src(必选):表示要加载的页面地址。
注意: portal 标签目前处于高度实验性阶段,且由其演变而来的 “View Transitions API” 似乎正在成为主流的页面平滑切换方案。请勿在生产环境中使用 portal。
HTML portal 摘要
| 属于 | HTML 框架 |
|---|---|
| 使用频率 | 非常低(实验性) |
| 兼容性 | 暂无 |
| 官方文档 | 暂无 |
| MDN | 暂无 |
HTML portal 示例
接下来,我们通过一个简单的例子来讲解一下 HTML portal 标签是如何使用的。
示例:portal 标签的基本用法
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<portal src="https://www.lvyenet.com"></portal>
</body>
</html>分析:
在上面的代码中,我们使用 portal 标签加载了一个网站(https://www.lvyenet.com)。虽然页面没有直接跳转,但目标页面已经悄悄加载好了,准备随时可以 “切换” 过去。
portal 与 iframe 之间的区别
虽然 portal 和 iframe 都可以嵌入其他页面,但它们在技术原理和使用目的上有很大不同:
| portal | iframe | |
|---|---|---|
| 渲染方式 | 独立的事件循环(异步通信) | 共享事件循环(同步通信) |
| 通信方式 | 使用 postMessage 进行跨页面通信 | 可以直接通过 DOM 访问子页面内容 |
| 使用目的 | 提前加载并平滑切换到目标页面,增强跳转体验 | 嵌入其他页面,通常用于广告、小工具、第三方内容等 |
| 安全性 | 更高(不能直接访问嵌入页面的本地存储等资源) | 较低(可以访问所有嵌入资源,存在安全风险) |
| 浏览器支持 | 极少,属于实验阶段 | 广泛支持 |
