zoukankan      html  css  js  c++  java
  • 记一次canvas的拖拽和缩放的性能问题

    本来是针对canvas的一次拖拽和缩放,发现, 在快速或者足够多的操作之后,内存会逐渐上升,导致浏览器卡死,经过查找相关资料,发现了几个优化的点,这里作为记录。

    1 批量绘制图形,一次性渲染

    2 采用离线缓存处理canvas,显著提升性能

    3 大尺寸的canvas可以转换成图片显示,以保证交互操作的流畅

    4 使用requestAnimationFrame,传统的以固定频率命令浏览器进行渲染不同,该方法可以更友善的对待浏览器,它会在浏览器可用的时候使其来 渲染。这样带来的另外一个好处是当页面不可见的时候,它会很聪明的停止渲染。

    5 注意浮点运算,如无特别需要,减少浮点运算,可以使用一下方法取整

    // With a bitwise or.  
    rounded = (0.5 + somenum) | 0;  
    // A double bitwise not.  
    rounded = ~~ (0.5 + somenum);  
    // Finally, a left bitwise shift.  
    rounded = (0.5 + somenum) << 0;  
  • 相关阅读:
    Java 学习资料
    01 html5
    vscode 插件推荐
    08 css高级
    07 css定位
    06 css布局浮动
    05 css盒子
    04 css复合选择器 标签 行高
    03 css字体样式
    02 css基础选择器
  • 原文地址:https://www.cnblogs.com/dpwow/p/7831192.html
Copyright © 2011-2022 走看看