TML5是一种用于构建现代网站和应用程序的最新版本的HTML标准。下面介绍HTML5的15个常用新特性和如何使用它们:
1.语义标签:HTML5引入了一些新的语义标签,如<header>、<nav>、<article>、<section>、<aside>和<footer>,用于更好地描述网页内容的结构。
2.视频和音频:HTML5允许在网页上嵌入视频和音频,通过使用<video>和<audio>标签来实现。可以使用controls属性添加播放器控制条。
3.画布:HTML5的<canvas>标签可以用于在网页上绘制图形、动画和其他复杂的视觉效果。
4.SVG:HTML5支持可缩放矢量图形(SVG),可以使用SVG标签在网页上绘制矢量图形和动画。
5.地理位置:HTML5允许网页获取用户的地理位置信息,可以使用navigator.geolocation API实现。
6.Web存储:HTML5引入了本地存储机制,包括localStorage和sessionStorage,可以在浏览器端存储数据。
7.Web Workers:HTML5允许通过Web Workers在后台线程中执行JavaScript代码,以提高网页性能和响应速度。
8.WebSocket:HTML5引入了WebSocket协议,可以实现浏览器和服务器之间的实时通信。
9.WebRTC:HTML5支持WebRTC技术,可实现浏览器之间的点对点音视频通信。
10.微数据:HTML5的微数据机制可以让网页上的内容更容易被搜索引擎识别和解释。
11.拖放:HTML5支持拖放操作,可以使用draggable属性和ondrag事件实现。
12.表单控件:HTML5引入了一些新的表单控件,如日期选择器、颜色选择器、范围选择器等。
13.历史API:HTML5的历史API可以让网页在不刷新页面的情况下改变URL,实现更好的用户体验。
14.全屏API:HTML5的全屏API可以让网页全屏显示,提供更好的视觉效果和用户体验。
15.CSS3:虽然不是HTML5的一部分,但HTML5通常与CSS3一起使用。CSS3提供了更多的样式和动画效果,如过渡、变换、动画等。
结语
牵手 持续为你分享各类知识和软件 ,欢迎访问、关注、讨论 并留下你的小心心?
么是HTML、HTML5
HTML(Hypertext Markup Language)是一种用于创建网页的标记语言,它通过标记来描述网页的结构和内容。HTML标准不断更新,目前最新的版本是HTML5。
HTML5是HTML的第五个版本,是一种用于创建现代Web应用程序的标准。它包含了许多新的功能和API,例如Canvas、Audio、Video、Web Storage、Web Worker、Geolocation等,可以实现更出色的用户体验和更多的交互特性。与之前的HTML版本相比,HTML5具有更强的兼容性和更好的语义化,支持移动设备和桌面设备上的应用程序开发。
H5是HTML5的简称吗
答:在绝大一部分人眼中,H5通常是指基于HTML5、CSS3、JavaScript等一系列的技术开发的移动应用程序,包括网页游戏、移动商城、移动社交、移动阅读等应用。H5应用通常具有良好的跨平台性,用户不需要下载安装即可直接在浏览器中使用,具有更好的用户体验和易用性。
所以,就此定义,通常所说的 H5并非是HTML5的简称。
直观解释HTML5和H5
HTML5:超文本标记语言,是一套标准。
H5:一套技术的简称,包含了 HTML5、CSS3、JavaScript等一系列的技术。
结语
牵手 持续为你分享各类知识和软件 ,欢迎访问、关注、讨论 并留下你的小心心?
前端界面显示的速度一般要求是:60fps
10ms中处理的流程为:
javascript > style > layout > paint > composite
如果JS的操作影响到了界面样式的变化,则有上面的处理流程
如果style的操作影响到布局,则会进入layout,反之亦然;style改了transform属性,在blink和edge浏览器里面不需要layout和paint
避免head标签JS堵塞
异步加载JS: HTML5 的script 属性 defer
JS写在body后面
Tips: 可能有时候JS库,还没加载完就要执行了,可能会报错
减少 head 中的 CSS 资源
CSS 会影响到 layout ,写在Body里面会界面闪烁,但写在Head里面如果太多会影响渲染
不要写太多base64,虽然很方便,但会改变文件大小
如果CSS文件没有达到三位数的大小,可以直接写到Html界面中,因为如果使用外链样式,则可能会花费更多时间,如DNS解析,建立链接,下载等
优化图片,使用响应式图片,图片的srcset 属性,会有兼容问题
<img srcset='photo_w350.jpg 1x photo_w640.jpg 2x' src='phtot_w350.jpg' alt=''>
使用picture按需加载,需要写在HTML中,如果使用JS来调用,则无效
<picture>
<source srcset='baner_w1000.jpg' media="(min-width:801px)"> # source 还有其它的优化属性,不过会有兼容问题: type='image/webp'
<source srcset='baner_w800.jpg' media="(max-width:800px)">
<img src='baner_w800.jpg' alt=''> # picture 必需有 img 标签,只有img标签才会触发onload事件; picture 与 source 都不触发 layout
</picture>
判断浏览器是否支持:
var supportSrcset='srcset' in document.createElement('img');
var surportPicture='HTMLPictureElement' in window;
延迟加载
<picture>
<source data-srcset="photo_w350.jpg 1x, photo_w640.jpg 2x">
<img data-src="photo_w350.jpg" src="about:blank" alt=""> # src 写为此值不会报错,也对浏览器友好
</picture>
监听Scroll事件
showImage(leftSpace=500){
var scrollTop=$window.scrollTop(), $containers=this.$imgContainers, scrollPosition=$window.scrollTop() + $window.height();
for(var i=0; i < $containers.length; i++){
//如果快要滑到图片的位置了
var $container=$containers.eq(i);
if($container.offset().top - scrollPosition < leftSpace) {
this.ensureImgSrc($container);
}
}
}
ensureImgSrc($container) {
var $source=$container.find("source");
if($source.length && !$source.attr("srcset")){
$source.attr("srcset", $source.data("srcset"));
}
var $img=$container.find("img:not(.loading)");
if($img.length && $img.attr("src").indexOf("//") < 0){
$img.attr("src", $img.data("src"));
this.shownCount++;
}
}
init(){
//初始化
var leftSpace=0;
this.showImage(leftSpace);
//滑动
$window.on("scroll", this, this.throttleShow);
}
ensureImgSrc($container){
//如果全部显示,off掉window.scroll
if(this.shownCount >=this.allCount){
$window.off("scroll", this.throttleShow);
}
}
指定图片尺寸,避免 reflow
作用
第一个是把200变成304,避免资源重新传输,
第二个是让浏览器直接从缓存取,连http请求都不用了,这样对于第二次访问页面是极为有利的。
开启压缩 gzip
server {
gzip on;
gzip_types text/plain application/javascript application/x-javascript text/html text/css text/xml text/javascript
}
缓存 Cache-Control
location ~* \.(jpg|gif|png|webp) {
expires 30d;
}
location ~* \.(css|js) {
expires 1d;
}
此方法会在返回的请求响应头中添加 Cache-Control: max-age=604800 , 且 max-age 的优先级会大于 last-modified
开启 nginx last-modified 字段,在响应头中: last-modified 字段接收nginx的数据,在请求头中: If-Modified-Since 字段返回给nginx
这个办法得查手册
使用etag,在响应头中是: Etag 字段 ,在请求头中会记录在 If-None-Match 字段
server {
etag on;
}
DNS预读取
<link rel="dns-prefection" href="https://www.google.com"> # 在Head标签中添加相应的域名,由于它是并行的,不会堵塞页面渲染
HTML优化
删除注释、缩进,除了 pre 或 code 这样的标签不能删除,其它的都可以
代码优化
例如说html别嵌套太多层,否则加重页面layout的压力
CSS的选择器别写太复杂,不然匹配的计算量会比较大
JS的滥用闭包,闭包会加深作用域链,加长变量查找的时间
代替图片 或 LocalStorage、 Offline Storage
*请认真填写需求信息,我们会在24小时内与您取得联系。