整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

web前端tips:HTML5部分新特性介绍

web前端tips:HTML5部分新特性介绍

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等一系列的技术。

结语

牵手 持续为你分享各类知识和软件 ,欢迎访问、关注、讨论 并留下你的小心心?

1. 基本要求

前端界面显示的速度一般要求是:60fps

2. 根据要求 1s / 60=16.67ms 即:处理一个界面的时间,除了浏览器自己需要的时间,开发者能使用的时间大概10ms

10ms中处理的流程为:

javascript > style > layout > paint > composite

如果JS的操作影响到了界面样式的变化,则有上面的处理流程

如果style的操作影响到布局,则会进入layout,反之亦然;style改了transform属性,在blink和edge浏览器里面不需要layout和paint

3. 减少渲染堵塞

避免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

4. 压缩与缓存

作用

第一个是把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;

}

5. 其它优化

DNS预读取

<link rel="dns-prefection" href="https://www.google.com"> # 在Head标签中添加相应的域名,由于它是并行的,不会堵塞页面渲染

HTML优化

删除注释、缩进,除了 pre 或 code 这样的标签不能删除,其它的都可以

代码优化

例如说html别嵌套太多层,否则加重页面layout的压力

CSS的选择器别写太复杂,不然匹配的计算量会比较大

JS的滥用闭包,闭包会加深作用域链,加长变量查找的时间

6. 利用HTML5或CSS3

代替图片 或 LocalStorage、 Offline Storage