提到HTML,前端工程师的第一反应肯定是这么简单的语言,有什么不会的?如果你还抱有上述看法,建议你接着看下去。
你应该不止到meta标签还可以控制页面自动跳转吧?在同一目录下新建两个文件index.html和page2.html
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta http-equiv="refresh" content="5; URL=page2.html">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
head>
<body>
<h1>Indexh1>
body>
html>
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
head>
<body>
<h1>page 2h1>
body>
html>
通过这短短一行代码
<meta http-equiv="Refresh" content="5; URL=page2.html">
就可以实现五秒后自动跳转至page2.html。
另一种场景,每隔六十秒自动刷新页面,也可以通过一行代码实现
<meta http-equiv="Refresh" content="60">
相信你也曾经有过这种好奇,切至其它页面后,之前打开的页面还可以通过标签页显示新的消息通知或者闪烁。接下来我就告诉你该如何实现这些效果。
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
head>
<body>
<script>
let msgNum = 1
let cnt = 0
const interval = setInterval(() => {
cnt = (cnt+1) % 2
if (msgNum === 0) {
document.title += '聊天页面'
clearInterval(interval)
return
}
const prefix = cnt % 2 ? `新消息(${msgNum})` : ''
document.title = `${prefix}聊天页面`
}, 1000)
script>
body>
html>
动态修改 title 标签的用途不仅在于消息提醒,你还可以将一些关键信息显示到标签上(比如下载时的进度、当前操作步骤),从而提升用户体验。
性能问题无外乎两方面原因:渲染速度慢、请求时间长。通过合理使用标签,就可以在一定程度上提升渲染速度以及减少请求时间。
由于浏览器的架构设计,当渲染页面时,如果遇到js文件则会暂停当前页面渲染(因为js可以操作DOM来改变页面结构),但页面的首次渲染可能并不需要这些文件,所以此时js的异步加载就显得尤为重要。有一位大佬曾经说过,100ms的延迟就会让人眼感到明显的卡顿。
为了减少首次渲染时间,加载js文件可以借助这三个属性来实现。
<script src="./main.js" async>script>
<script src="./main.js" defer>script>
<script src="./main.js" type="module">script>
这里以CSDN官网为例。
有时候为了用户访问方便或者出于历史原因,对于同一个页面会有多个网址,又或者存在某些重定向页面。那么可以在这些页面中这样设置
<link href="https://lagou.com/a.html" rel="canonical">