问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

浏览器实现可视化的四种方式

创作时间:
作者:
@小白创作中心

浏览器实现可视化的四种方式

引用
CSDN
1.
https://blog.csdn.net/qq_48607161/article/details/136481156

在现代Web开发中,浏览器可视化技术是前端开发的重要组成部分。本文将介绍四种主要的浏览器图形渲染方式:HTML+CSS、SVG、Canvas2D和WebGL,帮助开发者根据需求选择合适的技术方案。

浏览器实现可视化的四种方式

在浏览器上实现图形渲染的方式主要是以下四种:HTML+CSS、SVG、Canvas2D、WebGL。

其中HTML+CSS与SVG属于声明式绘图方式,是开发人员根据数据创建不同的图形元素或CSS规则,然后经过浏览器渲染引擎解析并渲染出来。

但是Canvas2D与WebGL属于指令式绘图方式,是浏览器提供的一种可以用代码在“画布”上绘制图形的API。通过调用绘图指令,然后引擎直接在页面上进行绘制

一、HTML+CSS

优点:便捷,不需要第三方依赖

缺点:CSS属性不能直观体现数据结构,绘制也比较麻烦,由于HTML+CSS作为浏览器渲染引擎的部分,除了绘制图形外,还需要解析HTML等构建DOM树,然后再进行绘图,所以性能开销也大。

二、SVG

现代浏览器支持SVG(Scalable Vector Graphics,可缩放矢量图),是一种基于XML的图像格式。对于浏览器而言,SVG也可以使用DOM API进行操作。详细SVG教程可以看svg - SVG:可缩放矢量图形 | MDN (mozilla.org)

 <svg
    xmlns="http://www.w3.org/2000/svg"
    width="140px"
    height="240px"
    viewBox="0 0 3 100"
  >
    <g transform="translate(-29,100) scale(1,-1)">
      <g>
        <rect x="1" y="0" width="10" height="25" fill="#37c" />
        <rect x="13" y="0" width="10" height="26" fill="#37c" />
        <rect x="25" y="0" width="10" height="45" fill="#37c" />
        <rect x="37" y="0" width="10" height="40" fill="#37c" />
        <rect x="49" y="0" width="10" height="68" fill="#37c" />
      </g>
      <g>
        <rect x="1" y="0" width="10" height="15" fill="#3c7" />
        <rect x="13" y="0" width="10" height="11" fill="#3c7" />
        <rect x="25" y="0" width="10" height="17" fill="#3c7" />
        <rect x="37" y="0" width="10" height="25" fill="#3c7" />
        <rect x="49" y="0" width="10" height="37" fill="#3c7" />
      </g>
    </g>
  </svg>
  

优点:比HTML+CSS绘制要方便,有内置的图形API

缺点:与HTML元素一样,需要经过引擎的解析、布局计算和渲染树生成。而且一个SVG元素只能表示一种基本图形,如果展示数据过于复杂,会导致SVG元素增加,大大降低了渲染性能。

三、Canvas2D

Canvas元素会在浏览器上创建一个空白的画布,通过提供渲染上下文,赋予我们绘制内容的能力,然后只需要通过调用渲染上下文,设置各种属性,然后调用绘图指令完成输出,就可以在画布上呈现各种图形。

优点:渲染性能比HTML、SVG要快,因为不需要经过渲染引擎解析HTML、构建渲染树等过程。

缺点:由于绘制的是一系列指令的执行结果,所以图形的内部是一个整体,不便于对绘图的局部进行控制与交互。

四、WebGL

WebGL是基于OpenGL ES规范的浏览器实现的,API更接近底层。在:

  • 绘制的图形数量非常多:海量数据加载、控制等;

  • 较大的图像细节做像素处理:物体光影、流体效果计算等;

  • 绘制3D物体:3D物体投影、深度检测等。

优点:充分利用GPU并行计算的能力,能快速、精准的操作图像的像素,并且进行大量计算,也内置了对于3D的投影、深度检测等处理。

缺点:使用难度比其他的大。

力,能快速、精准的操作图像的像素,并且进行大量计算,也内置了对于3D的投影、深度检测等处理。

缺点:使用难度比其他的大。

五、图形系统与浏览器渲染引擎工作对比

相比于HTML、SVG,Canvas2D和WebGL更适合去做可视化的绘图工作,因为他们的API可以直接操作绘图上下文,一般不涉及引擎其他工作部分,无论是重绘还是海量绘制,都会比HTML等减少性能开销。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号