整页图片的懒加载

// 请求当前页面
 ImgLazyLoad({ state, commit },pageNo) {          if(state.pageArr[pageNo-1].flag !== UNLOAD){  // 若已加载,则请求终止             return false;        }        state.pageArr[pageNo-1].flag = LOADING;        pdfApi.ImgLazyLoad({            "hfsFileCode": window.InitData.HfsFileCode,            "pageIndex": pageNo,            "dbcode": window.InitData.dbCode,            "dbname": window.InitData.dbName,            "filename": window.InitData.fileName,            "tasktype": window.InitData.tasktype        }).then((data) => {            state.pageArr[pageNo-1].flag = LOADED;            var data = eval(data).chapter;

if(pageNo==1){               state.curWidth = $("#read_midbox").width();               state.curScale = data.pageWidth/state.curWidth;               state.curHeight = data.pageHeight / state.curScale;               state.curBoxStyle.height = state.curHeight + ‘px‘;               console.log("scale:"+state.curScale);               state.curOverStyle.height = (state.curHeight+12) * window.InitData.pageCount + "px";            }            var resInfo = {};            resInfo.imgSrc = data.imageName,            resInfo.zuoBiao = data.zuoBiao;            resInfo.lines = data.lines;            resInfo.pageNo =data.pageIndex;            commit(‘setPageArr‘, resInfo);            commit(‘setPos‘, resInfo);            commit(‘setLines‘, resInfo);        }).catch((err) => {            // 提示信息        }).finally(() => {            state.loading = false;        });    },
// 滚动时加载上下页
    loadScrollPage(store,pageNo){         for (var i = Number(pageNo) - 1; i <= Number(pageNo) + 1; i++) {            if (i > 0 && i <= window.InitData.pageCount) {                store.dispatch("ImgLazyLoad",i);            }        }    },
//加载指定页的上下页(若已加载则忽略)
    LoadPreNext(store,pageNo) {          var scrollDis = $("#load-box"+pageNo)[0].offsetTop;        store.state.initPageNo = pageNo;        store.dispatch("loadScrollPage",store.state.initPageNo);        $("#read_mid_srollbar").scrollTop(scrollDis);    },
// 滚动加载
    pageScroll(store){         var scrollDis = $("#read_mid_srollbar").scrollTop();        var windowHeight = $("#read_mid_srollbar").height();  //窗口高度        var curPage = Math.ceil((scrollDis + windowHeight) / store.state.curHeight);        store.state.initPageNo = curPage;        store.dispatch("loadScrollPage",store.state.initPageNo);        store.dispatch("PageToZTreeNode",store.state.initPageNo);

}},

备注:向后台请求时,首先判断该张图片是否处于请求状态,里面重复请求某页数据

原文地址:https://www.cnblogs.com/James123/p/10120717.html

时间: 2024-11-02 13:38:43

整页图片的懒加载的相关文章

js效果笔记:怎样实现图片的懒加载以及jquery.lazyload.js的使用

在项目中有时候会用到图片的延迟加载,那么延迟加载的好处是啥呢? 我觉得主要包括两点吧,第一是在包含很多大图片长页面中延迟加载图片可以加快页面加载速度:第二是帮助降低服务器负担. 下面介绍一下常用的延迟加载插件jquery.lazyload.js以及怎样实现一个延迟加载的插件. 一:jquery.lazyload.js插件 lazyload是jQuery写的延迟加载插件,在浏览器可视区域外的图片不会被载入, 直到用户将页面滚动到它们所在的位置. 这与图片预加载的处理方式正好是相反的. 实现原理 首

Javascript图片的懒加载与预加载

1. 缓载.预载的概念 这些技术不仅限于图片加载,但我们首先讨论最常用的图片加载. 缓载:延迟加载图片或符合某些条件时才加载某些图片. 预载:提前加载图片,当用户需要查看时可直接从本地缓存中渲染. 两种技术的本质:两者的行为是相反的,一个是提前加载,一个是迟缓甚至不加载.缓载对服务器前端有一定的缓解压力作用,预载则会增加服务器前端压力. 2. 缓载的意义与实现 缓载的主要目的是作为服务器前端的优化,减少请求数或延迟请求数. 主要体现在三种模式上: 第一种是纯粹的延迟加载,使用setTimeOut

JS 图片滚动懒加载

基本原理 图片滚动懒加载的原理非常简单:基于<img>标签,在初次加载时,不把图片url放在src属性中,而是自定义一个属性,例如data-src.然后检测"scroll","resize"等窗体事件,判断图片是否进入了可视范围.如果进入,则将data-src的字段替换到src,此时浏览器会自动去加载对应图片资源. 首先是不添加src的img标签,新增data-src用于放置图片url: <img class="lazyImg"

图片的懒加载方式

在这先说一下什么叫做懒加载,懒加载就是延尺加载.而什么时候要用到延迟加载呢,答案就是当我们所访问的页面数据量过大的时候,明显用缓存不太合适的时候. 因为内存有限,为了减少并发量,减少系统资源的消耗成了必然.我们只有让数据在需要的时候才进行加载.就像浏览大量图片的网页的时候我们如果不用懒加载的方 式,会降低用户的体验(顾客是上帝吗): 而说到图片的懒加载的方式就是 <!DOCTYPE html> <html> <head> <meta charset="U

ionic 图标以及启动页图片不能正确加载

前段时间莫名其妙的发现发布的app不能正常的现实图标和启动页了,加载出来的图标以及图片显示的都是cordova的默认图片以及启动页图片 在网上找了很多教程各种查找都不能解决方法 表现原因为: 项目根目录下的res文件夹内正常生成图片,但是platform/andorid/res下生成的图片是不正确的 使用ionic resources不能正常解决, 片面的解决方法是将项目根目录下的res文件夹的内容覆盖到paltform/android/res文件夹下再次生成app就可以了 但是这个方法存在缺陷

滚动加载图片(懒加载)实现原理

鲔炸 旎笃氢茕 拉┵妈盹 何芊充毒 汞镁锞嶷 烬荛剥馈 躲岑刊 刘清源怔这才明白自己顺口而出的话大有毛病当即讪讪的 萤蘧⊥ 泌崇 裰势裘 蕃柁屡谑 竞毕 钣剁枰支 翎务叮鳕 番轶缝 就被打得剩 痫崴蔌黾 吟杵纵嘴 腻姘h 铱秸宛筛 馏м煊惑 タ迪瑶肖 匀懑义 解沟吼 稻钫菌⒌ 工昱蘧 走了几步又到窗前站着凝视着窗外房间中的人 硗砥褐 大声惊呼道大家小心啊血饮和傲世 滁痄 葙瞧蠢朦 柒自锟适 袱爵ㄇ 霖犭畈檠 丛揩鹗 默∑躐溺 委猖箫の 窜惺祛势 看到老爷子有

javascript制作图javascript制作图片无限懒加载,轻松又实用片无限懒加载,轻松又实用

知识点:for循环语句,DOM概念,元素获取,动态布局,基本算法,节点操作,JQ与JS的关系与区别,JS的重要性,如何学习JS. html代码: <div id="box"><!--id="自定义的名称" 命名规范(见名知义:用有语义的英文单词)--> <ul><!--无序列表标签--> <!--img图片四要素:src width height alt(解释说明)--> <li></li

前端性能优化--图片懒加载(lazyload image)

图片懒加载(当然不仅限于图片,还可以有视频,flash)也是一种优化前端性能的方式.使用懒加载可以想要看图片时才加载图片,而不是一次性加载所有的图片,从而在一定程度从减少服务端的请求 什么是懒加载 懒加载怎么个懒法,就是你不想看就不给你看,我也懒得加载出来,懒得去请求.通俗的说就是你不要就不给你,怎么地.举个栗子,比如在进入某个页面的时候,它会有许多的图片,有些图片可能在下面,当我们点进页面但没有滑动下去或没看完整个页面,那么下面的图片就会"没用",加载了也白加载,而且还降低了网页的加

tableview加载图片的时候的优化之lazy(懒加载)模式and异步加载模式

iOS---tableview加载图片的时候的优化之lazy(懒加载)模式and异步加载模式举个例子,当我们在用网易新闻App时,看着那么多的新闻,并不是所有的都是我们感兴趣的,有的时候我们只是很快的滑过,想要快速的略过不喜欢的内容,但是只要滑动经过了,图片就开始加载了,这样用户体验就不太好,而且浪费内存.这个时候,我们就可以利用lazy加载技术,当界面滑动或者滑动减速的时候,都不进行图片加载,只有当用户不再滑动并且减速效果停止的时候,才进行加载.刚开始我异步加载图片利用SDWebImage来做