NuxtJS2图片加载优化,预缓存和调用

本文阅读 2 分钟
广告

依然是上次那个项目,因为是一个客户端(但是又要求在线访问),所以图片加载首先就遇到了两个问题。一是图片质量大而且多,页面加载会卡顿,二是页面切换的时候,网络不好会加载半天的时间,我想了很久,最后决定要在进入在线网页首页的时候,搞一个加载条,加载完图片的时候,再打开网页。
NuxtJS
那么,就会用到图片预加载,实现起来不难,具体代码如下:

1.创建一个标准的vue页面,在data部分加入要缓存的图片数组。

imageSources: [
  "/img/1.png",
  "/img/2.png",
  "/img/3.png",
  "/img/4.png",
  "/img/5.png",
  "/img/6.png",
  "/img/7.png"
]

2.在methods中创建缓存方法:

  preloadImages() {
    const that = this;
    const promises = []

    for (let i = 0; i < this.imageSources.length; i++) {
      const img = new Image()
      const promise = new Promise((resolve, reject) => {
        img.onload = resolve
        img.onerror = reject
      })

      img.src = this.imageSources[i]
      promises.push(promise)
    }

    Promise.all(promises)
      .then(() => {
        //图片缓存完成后,执行其它操作
        
      })
      .catch(error => {
        console.error(error)
      })
  },

3.在起始的页面上,调用缓存方法,这里可以提前搞一个进度条或者加载图啥的,让用户知道加载过程,加载完了关闭就好。

that.preloadImages();

4.上述操作完成后,图片将被缓存到内存中,直接引用这些路径调用即可,不需要额外的代码。实际效果非常好,只要完成了起始页加载,后面的图片都会直接显示,而不需要加载。

本文来自投稿,不代表本站立场,如若转载,请注明出处:https://www.ruletree.club/archives/3432/
NuxtJS2实现无卡顿高性能的音频播放
« 上一篇 06-14
无需外国人身份,开通美国或香港信用卡,订阅chatgpt或绑定支付宝微信
下一篇 » 07-09
广告

发表评论

V注册会员 L评论等级
R3 条回复
  1. 寻梦xunmLv.2 说道:
    2023-11-21     Android /    Chrome

    这是不是传说中的掩耳盗铃

    1. 不暇VLv.6 说道:
      2023-11-22     Win 10 /    Chrome

      @寻梦xunm

      这是用来一些特别需求,比如网页游戏之类的做图片缓存

  2. gaoxuanVLv.1 说道:
    2023-10-10     Android /    Chrome

没有更多评论了

作者信息

热门文章

标签TAG

热评文章