HTML5结构规范

一,getBoundingClientRect;

用于获得页面中某个元素的左,上,右和下分别相对浏览器视窗的位置。

const elTop = el.getBoundingClientRect().top;

二, Web Worker

当在 HTML 页面中执行脚本时,页面是不可响应的,直到脚本已完成。

Web worker 是运行在后台的 JavaScript,独立于其他脚本,不会影响页面的性能。您可以继续做任何愿意做的事情:点击、选取内容等等,而此时 web worker 运行在后台。

Webworker使用限制:

  • 与主线程脚本同源
  • 无法操作DOM和BOM
  • 不能读取本地文件

Webworker使用场景:

  • 复杂运算
  • 渲染优化
  • 流媒体数据处理

三,html5新特性

3.1 语义化标签

<section> </section> 与  <article> </article>

两者的区别在于<section>更加通用和广泛,而<article>更加具体和特定,用于表示具有独立意义的内容块。

<main>:表示文档的主要内容区域,每个文档只应包含一个<main>元素。

<header>:表示文档或区段的引导部分,通常包含标题、标志、导航等内容。

<footer>:表示文档或区段的页脚部分,通常包含版权信息、联系方式等内容。

<nav>:表示导航链接的部分。<aside>:表示页面内容之外的侧边栏或附加信息区域。

 说明:<source>标签允许您规定可替换的视频/音频文件供浏览器根据它对媒体类型或者编解码器的支持进行选择。

<header>Header</header>   
<nav>Nav</nav>   
<div class="body">     
<article>  
<section>Section</section> 
</article>     
<aside>Aside</aside>   
</div>
<footer>Footer</footer>
  • 清晰易读
  • 有利于SEO,方便搜索引擎识别页面结构
  • 方便设备解析、比如盲人阅读

3.2 音视频标签
<video width="320" height="240" controls="controls">   <source src="movie.mp4" type="video/mp4" /> </video>

在h5之前,网页中内嵌音视频普遍会采用flash实现。

3.3 画布 - Canvas+ SVG
<canvas id="myCanvas" width="200" height="100"></canvas><script type="text/javascript">var c=document.getElementById("myCanvas"); var cxt=c.getContext("2d"); cxt.fillStyle="#FF0000"; cxt.fillRect(0,0,150,75); </script>

HTML5 的 canvas 元素使用 JavaScript 在网页上绘制图像。

画布是一个矩形区域,您可以控制其每一像素。

canvas 拥有多种绘制路径、矩形、圆形、字符以及添加图像的方法。

3.4 拖放

拖放(Drag 和 Drop)是很常见的特性。它指的是您抓取某物并拖入不同的位置。拖放是 HTML5 标准的组成部分:任何元素都是可拖放的。

3.5 本地存储

通过本地存储(Local Storage),web 应用程序能够在用户浏览器中对数据进行本地的存储。

在 HTML5 之前,应用程序数据只能存储在 cookie 中,包括每个服务器请求。本地存储则更安全,并且可在不影响网站性能的前提下将大量数据存储于本地。

与 cookie 不同,存储限制要大得多(至少5MB),并且信息不会被传输到服务器。

本地存储经由起源地(origin)(经由域和协议)。所有页面,从起源地,能够存储和访问相同的数据。

3.6 可编辑内容
<div class="edit" contenteditable='true'></div>

它被广泛的应用,比如很多网页编辑器,内容切换编辑状态等等,都可以通过这个属性来实现。

四, BigInt;

在 JavaScript 中,大整数ID 和 高精度的时间戳 不能安全的表示为 Number。这经常会引发错误,这导致 JavaScript 开发者将其表示为字符串。 有了 BigInt 这些数据就可以表示为数值了。

五, createDocumentFragment;

一次性将文档片段添加到 DOM 中,减少 DOM 操作次数

createDocumentFragment 是 Document 对象的方法之一,用于创建一个空白的文档片段(DocumentFragment)。

文档片段是一种特殊的节点类型,它类似于一个轻量级的虚拟文档,可以用来临时存储一系列节点,而不需要将它们直接添加到 DOM 树中。

创建文档片段后,可以将多个节点先添加到文档片段中,然后一次性将文档片段添加到实际的 DOM 结构中,这样可以减少 DOM 操作次数,提高性能。

  • requestAnimationFrame:

requestAnimationFrame 是一个浏览器提供的 API,用于执行动画和其他高性能的操作。

它通过浏览器的刷新频率(通常是每秒 60 帧)来调用指定的回调函数,以确保动画在每一帧之前更新。

使用 requestAnimationFrame 可以获得更加平滑和高效的动画效果,因为它会自动根据浏览器的刷新频率进行优化,避免了过度渲染和性能问题。

function animate() {// 在这里执行动画操作// ...// 在动画完成后,再次调用 requestAnimationFrame,实现连续动画效果requestAnimationFrame(animate);}// 第一次调用 requestAnimationFrame,启动动画requestAnimationFrame(animate);

注意:在使用 requestAnimationFrame 进行动画时,回调函数应该尽量简洁,避免执行过多的计算和 DOM 操作,以保证动画的流畅性和高性能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/222390.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用python脚本部署k8s集群

1.环境规划&#xff1a; 节点IP地址操作系统配置脚本运行节点192.168.174.5centos7.92G2核server192.168.174.150centos7.92G2核client1192.168.174.151centos7.92G2核client2192.168.174.152centos7.92G2 2.运行准备&#xff1a; yum install -y python python-pip pip in…

AI人工智能与云原生:创新科技的完美结合

人工智能&#xff08;AI&#xff09;是当今科技领域的热门话题&#xff0c;而云原生则是一种新兴的软件开发和部署模式。AI人工智能与云原生的结合&#xff0c;为现代技术创新提供了无限的可能性。本文将探讨AI与云原生的关系&#xff0c;并介绍其如何在实际应用中实现协同效应…

微信小程序如何实现WXML和js文件之间的数据交互

在微信小程序中&#xff0c;WXML负责页面结构的描述&#xff0c;而js文件则负责页面的逻辑处理和数据交互。要实现WXML和js文件之间的数据交互&#xff0c;可以通过以下几种方法&#xff1a; JS传输数据到WXML 数据绑定&#xff1a;在WXML中使用{{}}语法将js文件中的数据绑定…

宏景eHR SQL注入漏洞复现

0x01 产品简介 宏景eHR人力资源管理软件是一款人力资源管理与数字化应用相融合&#xff0c;满足动态化、协同化、流程化、战略化需求的软件。 0x02 漏洞概述 宏景eHR app_check_in/get_org_tree.jsp接口处存在SQL注入漏洞&#xff0c;未经过身份认证的远程攻击者可利用此漏洞…

SQL事务管理

事务管理是针对数据库的一组操作。由一条或多条SQL语句组成&#xff0c;这些语句在逻辑上具有强烈的相关性&#xff0c;如果其中一条语句无法执行&#xff0c;那么所有的语句都不会执行。 1 事务管理 原子性 指一个事务必须被视为一个不可分割的最小单元。只有事务中所有的数…

Django、Echarts异步请求、动态更新

前端页面 <!DOCTYPE html> <html><head><meta charset"utf-8"><title>echarts示例</title> <script src"jquery.min.js"></script><script type "text/javascript" src "echarts.m…

什么是PHP的SPL(标准PHP库)?

SPL&#xff08;Standard PHP Library&#xff09;是 PHP 中的标准库&#xff0c;提供了一组用于解决常见问题的接口和类。它包含了一系列的数据结构、算法、迭代器、文件处理、异常处理等组件&#xff0c;使得 PHP 开发者能够更方便地处理各种编程任务。 SPL 提供的主要组件包…

Rancher中使用promtail+loki+grafna收集k8s日志并展示

Rancher中使用promtail+loki+grafna收集k8s日志并展示 根据应用需求和日志数量级别选择对应的日志收集、过滤和展示方式,当日志量不太大,又想简单集中管理查看日志时,可使用promtail+loki+grafna的方式。本文找那个loki和grafana外置在了k8s集群之外。 1、添加Chart Repo …

Pencile - exer

import java.util.HashMap; import java.util.Map;public class TableConverter {public static void main(String[] args) {// 示例输入数据String[] inputData {"line1 col1 A","line2 col3 B","line3 col1 C","line4 col2 D",};//…

云架构的思考4--云上灾备

目录 1 关键指标2 灾备方案3 云上灾备常见模式3.1 “地域”模式3.2 “应用”模式3.3 “数据”模式 4 总结 前几章讲了云上架构、开发等事项&#xff0c;其实灾备也算是架构中的一步&#xff0c;但是这里特意拎出来讲主要有2个原因&#xff0c;其一是因为灾备相对独立且复杂&…

Linux-----5、文件系统

# 文件系统 # 终端的基本操作 ㈠ 打开多个终端 ㈡ 快速清屏 新建标签&#xff1a;command T 新建窗口&#xff1a;command N 关闭标签&#xff1a;command Q 关闭窗口&#xff1a;command W 放大&#xff1a;command 缩小&#xff1a;command - 清屏&#xff…

智慧城市/一网统管建设:人员危险行为检测算法,为城市安全保驾护航

随着人们压力的不断增加&#xff0c;经常会看见在日常生活中由于小摩擦造成的大事故。如何在事故发生时进行及时告警&#xff0c;又如何在事故发生后进行证据搜索与事件溯源&#xff1f;旭帆科技智能视频监控人员危险行为/事件检测算法可以给出答案。 全程监控&#xff0c;有源…

函数节流(js的问题)

函数节流也用到了高阶函数的知识&#xff0c;因为比较重要&#xff0c;所以单开了一个标题。 javascript中的函数在大多数情况下都是由用户主动调用触发的&#xff0c;除非是函数本身的实现不合理。但是在一些少数情况下&#xff0c;函数可能被很频繁的调用&#xff0c;而造成大…

【Linux】多线程编程

目录 1. 线程基础知识 2. 线程创建 3. 线程ID&#xff08;TID&#xff09; 4. 线程终止 5. 线程取消 6. 线程等待 7. 线程分离 8. 线程互斥 8.1 初始化互斥量 8.2 销毁互斥量 8.3 互斥量加锁和解锁 9. 可重入和线程安全 10. 线程同步之条件变量 10.1 初始化条件变…

Qt图像处理-亮度、对比度、灰度、锐化、负片的实现

本文演示Qt中图像的亮度、对比度、灰度、锐化、负片处理实现 一、概述 亮度和对比度原理 图像亮度通俗理解便是图像的明暗程度,数字图像 f(x,y) = i(x,y) r(x, y) ,如果灰度值在[0,255]之间,则 f 值越接近0亮度越低,f 值越接近255亮度越高。而且我们也要把亮度和对比…

Maven下载及安装自用版

Maven下载及安装自用版 可能是Maven用久了。感觉Maven用起来还算顺手&#xff0c;比Gradle要好上手一些。 一、下载 Maven 下载地址 注意下载版本和依赖要求&#xff0c;下载后&#xff0c;解压放在指定的位置;注意安装地址&#xff0c;放在自己规划好的开发环境专用文件夹里…

ubuntu创建apt-mirror本地仓库

首先创建apt-mirror的服务端&#xff0c;也就是存储所有apt-get下载的文件和依赖。大约需要300G&#xff0c;预留400G左右空间就可以开始了。 安装ubuntu省略&#xff0c;用的是ubuntu202204 ubuntu挂载硬盘&#xff08;不需要的可以跳过&#xff09;: #下载挂载工具 sudo apt…

C++类与对象(一)

目录 一&#xff0c;面向过程和面向对象初步认识 二&#xff0c;类的引入 三&#xff0c;类的定义 四&#xff0c;类的访问限定符及封装 五&#xff0c;类的实例化 六&#xff0c;类对象模型 七&#xff0c;this指针 一&#xff0c;面向过程和面向对象初步认识 c语言是面…

使用动画曲线编辑器打造炫酷的3D可视化ACE

前言 在制作3D可视化看板时&#xff0c;除了精细的模型结构外&#xff0c;炫酷的动画效果也是必不可少的。无论是复杂的还是简单的动画效果&#xff0c;要实现100%的自然平滑都是具有挑战性的工作。这涉及到物理引擎的计算和对动画效果的数学建模分析。一般来说&#xff0c;只…

HPM6750系列--第七篇 Visual Studio Code使用openocd调试查看外设信息

一、目的 在《HPM6750系列--第四篇 搭建Visual Studio Code开发调试环境》我们已经手把手指导大家如何在visual studio code中进行开发&#xff0c;包括编译调试等步骤以及相关配置文件。 但是在实际调试时发现找不到芯片寄存器实时显示的窗口&#xff0c;本篇主要讲解如何实现…