0

0

html5的api有哪些

青灯夜游

青灯夜游

发布时间:2021-12-13 14:37:45

|

5011人浏览过

|

来源于php中文网

原创

html5的api有:1、requestAnimationFrame;2、客户端存储;3、历史记录(History);4、worker;5、file Reader;6、websocoket等等。

html5的api有哪些

本教程操作环境:windows7系统、HTML5版、Dell G3电脑。

一、requestAnimationFrame (请求动画关键帧)

1.1  requestAnimationFrame怎么使用?

铺垫:

立即学习前端免费学习笔记(深入)”;

  先看一下,我们平时在JS中是怎么让一个元素产生动画效果的。

我们平时都是用定时器来设置多长时间后发生什么动画,或者位移




    

我们可以看到,用JS定时器就可以实现动画效果

但是,JS定时器会有一个缺点

浏览器的重绘是每1s  ——》 60次,所以大约为16ms重绘一次 

 如果我们像上面执行的一样,每隔10ms就增加 left50px 。页面就会造成关键帧丢失

requestAnimationFrame:(优化后)





    

1.2  requestAnimationFrame与setTImeout的区别?

setTimeout 是以 n 毫秒后执行回调函数,回调函数中可以递归 调用 setTimeout 来实现动画。

.demo {
            width: 100px;
            height: 100px;
            background-color: red;
            position: absolute;
            left: 0;
        }
    



    

使用 requestAnimationFrame 执行动画,最大优势是能保证回调函数在屏幕每一次刷 新间隔中只被执行一次,这样就不会引起丢帧,动画也就不会卡顿。

.demo {
            width: 100px;
            height: 100px;
            background-color: red;
            position: absolute;
            left: 0;
        }
    



    

1.3  requestAnimationFrame的优势

 

二、客户端存储

2.1  Storage: 不会传到服务器

2.1.1 Storage 如何使用  掌握方法

    

存储对象:

   

   

取出对象:

  

储存数组:

   

 

   

 

取出数组:

    

API    localstorage sessionStorage  共同适用  

   

设置,获得

   

移除属性(指定个别属性)

   

清除所有已设置的属性

   

2.1.2  localstorage sessionStorage cookie区别

 localstorage:

  存储信息到用户的设备上,一般为5MB

  永久存储,除非手动清除

  会存储到同域下

sessionStorage:  

  存储信息到用户的设备上,一般为5MB

  临时存储,页面关闭就会清除

  不会存储到同域下

cookie:

  存储信息到用户的设备上,数据量较小  4k

  navigator.cookieEnabled  检查是否启用了cookie

     

三、历史记录

 BOM中的 History对象方法

现在已知我有三个标签页(从红色小方块开始)

3.1history.length   长度

通过调用这个方法就可以知道,当前历史记录里面有几条数据(几个网页)

3.1history.back()   回退

 当前位置在第三页(淘宝页面),回退一页就会跳转到第二页(百度页面)

3.2 history.forward()   前进

 当前在红色小方块当前页,前进一页就会跳转至第二页(百度页面)

3.3 history.go(n)     跳转至指定页

当前在红色小方块页面即为第0页,go(2)就会跳转至第三页(淘宝页面)

 

当前在淘宝页面即为第三页,go(-2)就会跳转至第一页(红色方块页面)

HTML5中新增的方法   此方法受同源策略限制,需要在服务器下操作

 

1、pushState   添加一条历史记录

 

 2、replaceState   替换当前的历史记录

 

 

1.  popstate 监听页面历史记录一旦发生改变时触发

住哪网酒店预订程序城市专用版
住哪网酒店预订程序城市专用版

住哪酒店分销联盟是住哪网提供的一个网络分销预订平台。加入该本台,您可以通过在您网站或博客上展示图片、文字链接或搜索框,只要通过您的展示预订并入住的订单,您将得到至少12元/间夜的佣金。  加入条件非常宽松,如您经营的是商业性质还是个人性质的网站,可以通过本站提供的API接口,建立一个频道,一方面丰富网站内容,另一方面增加网站收入;如果您在其它网站上有博客,可以通过文字和图片链接,只要通过您的链接预

下载
        history.pushState(null, null, '#a');
        window.addEventListener('popstate', function(e){  //监听 popstate事件 有没有发生改变 
            console.log("历史记录发生改变,我触发了");
        }, false)

 应用场景

多应用于搜索,后台管理系统,或者父子页面之间的切换(开发一个页面就够了)

 





    
    
    
    Document
    



    
    
    

     2.  hashchange 

    用于监听hash值的改变触发事件,就是链接 # 这个东西的改变而触发

    跟popstate的用法大同小异,都差不多。用途也都是一样的。所以大家可以自己试试

    四、worker  (受同源策略限制,需要在服务器下运行)

    4.1 了解worker 

    worker字面意思是工人、雇佣员工的意思。

     worker是一种异步执行JS的方式。

    4.2 worker应用

       var worker = new worker('worker.js');    
       // worker文件必须和主文件满足同源策略

     就是在执行代码前雇佣一名工人(一个JS文件),把数据交给他让他异步执行,执行完了给主人返回回来。

    主人可以在执行完代码后,调用解雇工人的方法,就不能继续传数据,

    工人可以在执行完代码后,调用辞职方法,就不能继续传数据。

    传输数据

    postMessage 、onmessage

    返回数据

     

    4.3 结束worlker

    4.4woker的缺点

    (1)同源限制

    分配给 Worker 线程运行的脚本文件,必须与主线程的脚本文件同源。

    (2)DOM 限制

    Worker 线程所在的全局对象,与主线程不一样,无法读取主线程所在网页的 DOM 对象,也无法使用documentwindowparent这些对象。但是,Worker 线程可以navigator对象和location对象。

    (3)通信联系

    Worker 线程和主线程不在同一个上下文环境,它们不能直接通信,必须通过消息完成。

    (4)脚本限制

    Worker 线程不能执行alert()方法和confirm()方法,但可以使用 XMLHttpRequest 对象发出 AJAX 请求。

    (5)文件限制

    Worker 线程无法读取本地文件,即不能打开本机的文件系统(file://),它所加载的脚本,必须来自网络。

     4.5 其他特性

    4.6主要应用场景

     Ajax轮询可以使用,每隔一段时间获取一下数据(用一个定时期每隔一段时间,向后端发送一次请求)

    五、fileReader(上传文件,读取中的详细信息)

     5.1 fileReader的使用方法 

    var reader = new FileReader();

     

      按照不同项目的需求使用不同的方法,在这里我们就用这里面的readAsDataURL( )这个方法

      我们先来看怎么读取文件,我们需要先把文件发送至服务器,等他给我返回文件的URL地址,然后我拿着URL地址来渲染我的页面

      

    既然我们可以接收到返回的地址,那我们就可以把图片渲染到页面了

    
    
    
        
        @@##@@
        

    html5的api有哪些

    
    
    
        
        @@##@@
        

      在文件读取中我们可以知道两个值  loaded、total

    html5的api有哪些

    已知这两个值,我们就可以实现加载进度条了

    
    
    
        
        @@##@@
        

       

     然后我们还可以添加终止读取,就是在文件上传的中途,停止上传

    只需要添加一个按钮,和一个点击事件

            btn.onclick = function () {
                reader.abort();
                console.log('终止');
            }

    5.2 fileReader 可实现的功能

     图片预览、异步向发送服务端发送请求

    六、websocket(不受同源策略限制)

     websocket是一种网络协议,是在HTTP基础上做了一些优化的协议,与HTTP无直接关系。

    6.1  简单回忆HTTP协议

     html5的api有哪些

     6.2为什么有HTTP还需要websocket呢?

    因为HTTP协议有一个缺陷:通信只能由客户端发起

    服务器端不能实时的发送最新数据给客户端,

    我想要最新的数据怎么办呢? 只能用Ajax轮询(开启一个定时器,每隔一段时间调用请求一次数据)

    然而websocket呢只需要发送一次请求,只要服务器有最新数据就会自动给你发送过来,不用再次请求

    比如现在做的是一个天气状况的项目,每当天气有变化就会自动更新最新天气状况了

     6.3 websocket的特点

     

    6.4 websocket事件 

    6.5 创建websocket

    ws://echo.websocket.org/    是用来测试的地址
        var socket = new WebSocket('ws://echo.websocket.org/');

    调用e.data就可以打印出来数据了

    我们再来看看close这个方法

     6.6 websocket属性

     

    6.7 websocket的优点

     客户端与服务器都可以主动传送数据给对方;

    不用频率创建TCP请求及销毁请求,减少网络带宽资源的占用,同时也节省服务器资源;

     可以只请求一次,就会自动更新返回

    推荐教程:《html视频教程

    相关文章

    HTML速学教程(入门课程)
    HTML速学教程(入门课程)

    HTML怎么学习?HTML怎么入门?HTML在哪学?HTML怎么学才快?不用担心,这里为大家提供了HTML速学教程(入门课程),有需要的小伙伴保存下载就能学习啦!

    下载

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

    热门AI工具

    更多
    DeepSeek
    DeepSeek

    幻方量化公司旗下的开源大模型平台

    豆包大模型
    豆包大模型

    字节跳动自主研发的一系列大型语言模型

    通义千问
    通义千问

    阿里巴巴推出的全能AI助手

    腾讯元宝
    腾讯元宝

    腾讯混元平台推出的AI助手

    文心一言
    文心一言

    文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

    讯飞写作
    讯飞写作

    基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

    即梦AI
    即梦AI

    一站式AI创作平台,免费AI图片和视频生成。

    ChatGPT
    ChatGPT

    最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

    相关专题

    更多
    html5动画制作有哪些制作方法
    html5动画制作有哪些制作方法

    html5动画制作方法有使用CSS3动画、使用JavaScript动画库、使用HTML5 Canvas等。想了解更多html5动画制作方法相关内容,可以阅读本专题下面的文章。

    508

    2023.10.23

    HTML与HTML5的区别
    HTML与HTML5的区别

    HTML与HTML5的区别:1、html5支持矢量图形,html本身不支持;2、html5中可临时存储数据,html不行;3、html5新增了许多控件;4、html本身不支持音频和视频,html5支持;5、html无法处理不准确的语法,html5能够处理等等。想了解更多HTML与HTML5的相关内容,可以阅读本专题下面的文章。

    435

    2024.03.06

    html5从入门到精通汇总
    html5从入门到精通汇总

    想系统掌握HTML5开发?本合集精选全网优质学习资源,涵盖免费教程、实战项目、视频课程与权威电子书,从基础语法到高级特性(Canvas、本地存储、响应式布局等)一应俱全,适合零基础小白到进阶开发者,助你高效入门并精通HTML5前端开发。

    69

    2025.12.30

    html5新老标签汇总
    html5新老标签汇总

    HTML5在2026年持续优化网页语义化与交互体验,不仅引入了如<header>、<nav>、<article>、<section>、<aside>、<footer>等结构化标签,还新增了<video>、<audio>、<canvas>、<figure>、<time>、<mark>等增强多媒体与

    84

    2025.12.30

    html5空格代码怎么写
    html5空格代码怎么写

    在HTML5中,空格不能直接通过键盘空格键实现,需使用特定代码。本合集详解常用空格写法:&nbsp;(不间断空格)、&ensp;(半个中文空格)、&emsp;(一个中文空格)及CSS的white-space属性等方法,帮助开发者精准控制页面排版,避免因空格失效导致布局错乱,适用于新手入门与实战参考。

    76

    2025.12.30

    html5怎么做网站教程
    html5怎么做网站教程

    想从零开始学做网站?这份《HTML5怎么做网站教程》合集专为新手打造!涵盖HTML5基础语法、页面结构搭建、表单与多媒体嵌入、响应式布局及与CSS3/JavaScript协同开发等核心内容。无需编程基础,手把手教你用纯HTML5创建美观、兼容、移动端友好的现代网页。附实战案例+代码模板,快速上手,轻松迈出Web开发第一步!

    157

    2025.12.31

    HTML5建模教程
    HTML5建模教程

    想快速掌握HTML5模板搭建?本合集汇集实用HTML5建模教程,从零基础入门到实战开发全覆盖!内容涵盖响应式布局、语义化标签、Canvas绘图、表单验证及移动端适配等核心技能,提供可直接复用的模板结构与代码示例。无需复杂配置,助你高效构建现代网页,轻松上手前端开发!

    28

    2025.12.31

    html5怎么使用
    html5怎么使用

    想快速上手HTML5开发?本合集为你整理最实用的HTML5使用指南!涵盖HTML5基础语法、主流框架(如Bootstrap、Vue、React)集成方法,以及无需安装、直接在线编辑运行的平台推荐(如CodePen、JSFiddle)。无论你是新手还是进阶开发者,都能轻松掌握HTML5网页制作、响应式布局与交互功能开发,零配置开启高效前端编程之旅!

    40

    2025.12.31

    Python 自然语言处理(NLP)基础与实战
    Python 自然语言处理(NLP)基础与实战

    本专题系统讲解 Python 在自然语言处理(NLP)领域的基础方法与实战应用,涵盖文本预处理(分词、去停用词)、词性标注、命名实体识别、关键词提取、情感分析,以及常用 NLP 库(NLTK、spaCy)的核心用法。通过真实文本案例,帮助学习者掌握 使用 Python 进行文本分析与语言数据处理的完整流程,适用于内容分析、舆情监测与智能文本应用场景。

    10

    2026.01.27

    热门下载

    更多
    网站特效
    /
    网站源码
    /
    网站素材
    /
    前端模板

    精品课程

    更多
    相关推荐
    /
    热门推荐
    /
    最新课程
    HTML5/CSS3/JavaScript/ES6入门课程
    HTML5/CSS3/JavaScript/ES6入门课程

    共102课时 | 6.8万人学习

    HTML+CSS基础与实战
    HTML+CSS基础与实战

    共132课时 | 9.7万人学习

    前端开发(基础+实战项目合集)
    前端开发(基础+实战项目合集)

    共60课时 | 3.9万人学习

    关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
    php中文网:公益在线php培训,帮助PHP学习者快速成长!
    关注服务号 技术交流群
    PHP中文网订阅号
    每天精选资源文章推送

    Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号