美文网首页
PxLoader-h5资源预加载方案

PxLoader-h5资源预加载方案

作者: 修齐治平zzr | 来源:发表于2021-01-22 22:33 被阅读0次
      PxLoader是一个JavaScript库,可以帮助您创建一个资源加载界面,并提前下载好您后面界面需要加载的资源。它可以通过提供进度和已完成的事件监视下载状态,您可以由次实时更新您的进度条信息。

    开始使用

    PxLoader并没有npm版本,需要以文件引入的形式引用。
    // 开始使用
    // 1. 下载脚本并将文件放置在站点的JavaScript目录中。
    // PxLoader.js(主库文件)
    // PxLoaderImage.js(如果要下载图像,则为图像文件下载器)
    // PxLoaderSound.js(如果要下载声音,则为声音文件下载器)
    // PxLoaderVideo.js(如果要下载视频,则为视频文件下载器)
    // 2.添加核心库
    <script type="text/javascript" src="js/PxLoader.js"></script>
    // 3.添加所需资源类型的文件
    
    <!- images --> 
    <script type="text/javascript" src="js/PxLoaderImage.js"></script> 
     
    <!- sounds --> 
    <script type="text/javascript" src="js/PxLoaderSound.js"></script> 
    // PxLoaderSound需要依赖SoundManager2来加载和播放音频文件,此次不探讨
    
    以下为PxLoader基本api
    const loader = new window.PxLoader({
      // option 详情见官网
    });
    const PxLoaderImage = new window. PxLoaderImage();
    loader.addImage('localhost:3000/images/headerbg.jpg') // 核心库会帮我们下载好图片并缓存
    loader.addProgressListener((obj) => { 
        // 更新的资源
        resource: {} // the resource parameter provided to loader.add() 
        // 已更新的资源的状态
        loaded: true, 
        error: false, 
        timeout: false, 
        // 资源统计信息
        completedCount: 42, // 已完成的数量
        totalCount: 100 // 一共要下载的文件的数量
    }); // 每下载完一个文件触发的回调
    let img = PxLoaderImage.addImage('localhost:3000/images/headerbg.jpg') // PxLoaderImage插件会返回一个img标签
    console.log(img) // <img src="localhost:3000/images/headerbg.jpg" alt="" />
    
    以下演示需要在首页下载大量文件,并获取到实时的下载进度信息的需求解决方式
    // 假如我们需要在 page1文件夹下下载 page1_1.png, page1_2.png, page1_3.png,page2文件夹下下载 page2_1.png, page2_2.png, page2_3.png,
    // 一共要下载6个文件
    // 首先声明数组
    const preloadingList = [
      'page1/page1_1.png',  'page1/page1_2.png', 'page1/page1_3.png',
       'page2/page2_1.png', 'page2/page2_2.png', 'page2/page2_3.png'
    ];
    
    const baseurl = 'localhost:3000';
    const loader = new window.PxLoader();
    preloadingList.forEach((item) => {
      if (item) {
        loader.addImage(baseurl + item);
      }
    })
    
    loader.addProgressListener(function (e) {
      console.log(e.completedCount)
      // 在这里可以写关于进度条的业务
    })
    
    loader.addCompletionListener(function(e) { 
        console.log('Ready to go!'); 
        // 监听下载完成的回调
    }); 
    
    // 开始冲!
    loader.start(); 
    

    相关文章

      网友评论

          本文标题:PxLoader-h5资源预加载方案

          本文链接:https://www.haomeiwen.com/subject/oahezktx.html