当前位置: 首页 > wzjs >正文

网站页面 原则扬州市建筑信息平台

网站页面 原则,扬州市建筑信息平台,谷歌字体wordpress,分销系统商城定制开发defer表示延迟加载,针对大量节点的渲染加载,结合使用关键帧requestAnimationFrame的形式来分片加载,可以优化白屏时间 知识补充: requestAnimationFrame requestAnimationFrame 是根据帧数来执行回调函数的,就是屏幕…

defer表示延迟加载,针对大量节点的渲染加载,结合使用关键帧requestAnimationFrame的形式来分片加载,可以优化白屏时间

知识补充:

requestAnimationFrame

  • requestAnimationFrame 是根据帧数来执行回调函数的,就是屏幕一帧,那 requestAnimationFrame就会执行一次。一般屏幕是60帧,也就是一秒执行60次回调函数.
  • 性能相对定时器settimeout好,因为定时器执行权限在同步任务 微任务之后,会受到其他任务影响。

setTimeout 相比,requestAnimationFrame 最大的优势是由系统来决定回调函数的执行时机。具体一点讲,如果屏幕刷新率是60Hz,那么回调函数就每16.7ms被执行一次,如果刷新率是75Hz,那么这个时间间隔就变成了1000/75=13.3ms,换句话说就是,requestAnimationFrame 的步伐跟着系统的刷新步伐走。它能保证回调函数在屏幕每一次的刷新间隔中只被执行一次,这样就不会引起丢帧现象,也不会导致动画出现卡顿的问题。

解决方案:分帧渲染策略

VUE2.x


<template><div><div class="container"><div v-for="n in 100" :key="n+'n'"><div class="item_container" v-if="defer(n)"><div class="item_child" v-for="m in 6000" :key="m+'b'"></div>        </div></div>        </div></div>
</template>
<script>export default {name: 'page_Test',data() {return {nodeCount: 0,}},mounted() {方法一let maxNodeCount = 100const refreshNodeCount = () => {requestAnimationFrame((timestamp) => {console.log(timestamp, 'timestamp');//当前帧执行回调时的时间戳(以毫秒为单位,高精度小数)this.nodeCount++if (this.nodeCount < maxNodeCount) {refreshNodeCount()}})}refreshNodeCount()方法二this.update()},methods: {update(){let maxNodeCount = 100requestAnimationFrame((timestamp) => {console.log(timestamp, 'timestamp');//当前帧执行回调时的时间戳(以毫秒为单位,高精度小数)this.nodeCount++if (this.nodeCount < maxNodeCount) {this.update()}})},defer(n){// return 当前页面第几帧渲染 >= n;return this.nodeCount >= n},
}
</script><style lang="less" scoped>
// defer延迟加载
.container {display: grid;grid-template-columns: repeat(3, 1fr);grid-gap: 1em;.item_container {display: flex;flex-wrap: wrap;justify-content: center;border: 3px solid lightblue;}.item_child {width: 5px;height: 3px;background-color: #ccc;margin: 0.1em;}
}
</style>

或者封装方法,Mixins混入使用

export default function(maxNodeCount) {return {data() {return {nodeCount: 0}},mounted() {const refreshFrameCount = () => {requestAnimationFrame(() => {this.nodeCount++if (this.nodeCount < maxNodeCount) {refreshFrameCount()}})}refreshFrameCount()},methods: {defer(n) {// return 当前页面第几帧渲染 >= n;return this.nodeCount >= n}}}}

VUE3.x

封装useDefer.js

import { ref } from 'vue'const nodeCount = ref(0)function update() {nodeCount.value++;requestAnimationFrame(update)}update();export function useDefer() {return function (n) {return nodeCount.value >= n}}

组件使用


<template><div><div class="container"><div v-for="n in 100" :key="n+'n'"><div class="item_container" v-if="defer(n)"><div class="item_child" v-for="m in 6000" :key="m+'b'"></div>        </div></div>        </div></div>
</template><script setup>
import { useDefer} from './useDefer.js'
const defer= useDefer();
</script><style lang="less" scoped>
// defer延迟加载
.container {display: grid;grid-template-columns: repeat(3, 1fr);grid-gap: 1em;.item_container {display: flex;flex-wrap: wrap;justify-content: center;border: 3px solid lightblue;}.item_child {width: 5px;height: 3px;background-color: #ccc;margin: 0.1em;}
}
</style>

这样,就不会影响页面加载前一直显示白屏了~


文章转载自:

http://UW2PCGlQ.Ldqzz.cn
http://8TPvupLy.Ldqzz.cn
http://tievXh1C.Ldqzz.cn
http://Sjd2yTgp.Ldqzz.cn
http://4unBtwnb.Ldqzz.cn
http://vJHQaX9Z.Ldqzz.cn
http://ndIh25Ag.Ldqzz.cn
http://i1hDEKCh.Ldqzz.cn
http://X9COA7jz.Ldqzz.cn
http://2ivYBvrd.Ldqzz.cn
http://0iOiyrBk.Ldqzz.cn
http://V0Cnhx0l.Ldqzz.cn
http://QrhYKTWK.Ldqzz.cn
http://AaTECrFC.Ldqzz.cn
http://w0NHGLLB.Ldqzz.cn
http://4BYtk0Bj.Ldqzz.cn
http://urhBBgqy.Ldqzz.cn
http://3NU2Nqx5.Ldqzz.cn
http://kKm98rCX.Ldqzz.cn
http://JgoywYsD.Ldqzz.cn
http://SMkbGVLL.Ldqzz.cn
http://qkb89KlL.Ldqzz.cn
http://P3AEPgxy.Ldqzz.cn
http://6NramVlI.Ldqzz.cn
http://kQXTdltK.Ldqzz.cn
http://qoaR75n4.Ldqzz.cn
http://xFOlri6V.Ldqzz.cn
http://Em1mZYjp.Ldqzz.cn
http://EItchsqI.Ldqzz.cn
http://Row4X6GY.Ldqzz.cn
http://www.dtcms.com/wzjs/760456.html

相关文章:

  • 伍佰亿网站建设网站开发兼容问题
  • wordpress子站点解析939网站建设
  • 网页制作网站制作广告设计公司简介内容
  • 一起做业官方网站深圳网站建设有市场吗
  • 哪一些网站使用vue做的wordpress仿36kr氪主题
  • 邢台建设网站公司泗水县最新消息
  • 建个公司网站需要多少钱python做网站多少钱
  • 防蚊手环移动网站建设网站做外链的好处
  • 南昌做公司网站开个网络公司要多少钱
  • 给我一个网站图片商务平台搭建
  • 部署php网站南京企业网站搭建
  • 网站维护中wordpress 改中文
  • 做网站 图文教程关键词查询工具软件
  • 图片搜索seo外贸网站制作
  • 利用业务时间做的网站与公司有关吗做dj网站用什么建站系统比较好
  • 推广做网站电话政务微信小程序
  • 广州城市建设档案馆网站哪个网站做衣服的
  • 网站开发神器地产行业网站建设图片
  • 长沙公司网站搜索引擎seo如何赚钱
  • 做cpa怎么建立自己网站拉新app推广平台
  • 阅读网站源码宣传型网站的实现技术手段
  • 什么程序做网站收录好做特价网站
  • 网站建设服务合约手机网站 栏目定制
  • 昆明企业建网站多少钱做自媒体你不得不知道的视频网站
  • 网站备案证书打印一个wordpress模版几个网站
  • 做网站用小公司还是大公司建设网站答题赚钱
  • 河南南阳油田网站建设烟台做网站优化哪家好
  • 电子商务网站建设初学视频教程网站开发者所有权归属
  • 谷歌网站推广排名工具wordpress ftp没有权限
  • Python建网站的步骤asp网站上传到服务器上之后一打开就是download