懒加载

【应对网页图片懒加载】

柔情痞子 提交于 2019-11-27 19:08:00
原文: http://blog.gqylpy.com/gqy/358 " 图片懒加载概念 图片懒加载是一种网页优化技术。图片作为一种网络资源,在被请求时也与普通静态资源一样,将占用网络资源,而一次性将整个页面的所有图片加载完,将会大大增加页面的首屏加载时间。为了解决这个问题,通过前后端配合,使图片仅在浏览器当前视窗内出现时才加载该图片,达到减少首屏请求数的技术就被成为“图片懒加载”。 网站一般如何实现图片懒加载技术呢? 在网页源码中,在img标签中首先会使用一个“伪属性”(通常使用src2,original...)来存放真正的图片链接,而并非存放在src属性中。当图片出现到页面的可视化区域中时,会动态将伪属性替换成src属性,完成图片的加载。 实例:Python爬虫抓取站长素材网中的图片 import os import requests from lxml import etree import urllib.request from fake_useragent import UserAgent as ua from concurrent.futures import ThreadPoolExecutor # 站长素材网 url = 'http://sc.chinaz.com/tupian/gudianmeinvtupian.html' headers = { 'User

vue-lazyload插件

社会主义新天地 提交于 2019-11-27 16:06:16
目录 使用 参数说明 使用 npm install vue-lazyload --save //注册插件 import vueLazyload from 'vue-lazyload' Vue.use(vueLazyload); //在需要懒加载的图片上 <img v-lazy="imgUrl"> 参数说明 注册插件的时候,是可以传入第二个配置参数的 Vue.use(vueLazyload,{}) 可选的参数如下: preLoad:类型Number,默认1.3. 表示lazyload的元素距离页面底部距离的百分比.计算值为(preload - 1). attempt:图片加载失败后的重试次数.默认为3. error:类型string.图片加载失败后的显示的失败图片路径. loading:类型string.图片正在加载中显示的loading图片的路径. listenEvents:类型array.默认['scroll', 'wheel', 'mousewheel', 'resize', 'animationend', 'transitionend', 'touchmove'].即是在监听上述事件中,判断图片是否在preload的位置.如果你不想在那么多事件中判断,可以指定一个或者几个.例如如果你给这个属性只指定['touchmove'].那么scroll 屏幕不会加载图片

VUE—项目优化之懒加载(vue异步组件优化、webpack分割js)

别等时光非礼了梦想. 提交于 2019-11-27 13:39:20
VUE—项目优化之懒加载(vue异步组件优化、webpack分割js) 什么是懒加载? 当页面进入某个模块的时候,对应加载当前模块的js即可,不需要一次性的把所有的js都进行加载。 默认情况下 webpack会把所有的css、js一次性整合在一起,页面初始化的时候全部加载好, 这样会造成性能的影响,我们通过配置实现一个懒加载, 初始化进入的时候只加载当前需要的js和css即可。 懒加载 把不同的路由对应的组件分割成不同的代码模块, 然后当路由被访问的时候才加载 对应的组件,需要分两步: vue异步组件优化、webpack分割js 1、vue异步组件优化 组件需要被渲染的时候才会触发该函数,且会把结果缓存起来供未来重渲染(按需加载) 其实是调用promise方法 当成功后调用resolve, 失败后调用resject, 代码写法1: import navbar from ‘@/components/Nav’ components: { navbar : function (resolve, resject) { setTimeout(function () { resolve(navbar ) }, 1000) // 因为有延迟一秒的事件才会加载组件,所以一进入navbar这个路由是没有内容的 // 若不刷新,第一次进入会异步加载,第二次就不会,因为有缓存 // 有延迟看的清楚一些

前端项目优化 -Web 开发常用优化方案、Vue & React 项目优化

淺唱寂寞╮ 提交于 2019-11-27 10:43:46
github github-myBlob 从输入URL到页面加载完成的整个过程 首先做 DNS 查询,如果这一步做了智能 DNS 解析的话,会提供访问速度最快的 IP 地址回来 接下来是 TCP 握手,应用层会下发数据给传输层,这里 TCP 协议会指明两端的端口号,然后下发给网络层。网络层中的 IP 协议会确定 IP 地址,并且指示了数据传输中如何跳转路由器。然后包会再被封装到数据链路层的数据帧结构中,最后就是物理层面的传输了 TCP 握手结束后会进行 TLS 握手,然后就开始正式的传输数据(如果使用HTTPS) 数据在进入服务端之前,可能还会先经过负责负载均衡的服务器,它的作用就是将请求合理的分发到多台服务器上,这时假设服务端会响应一个 HTML 文件 首先浏览器会判断状态码是什么,如果是 200 那就继续解析,如果 400 或 500 的话就会报错,如果 300 的话会进行重定向,这里会有个重定向计数器,避免过多次的重定向,超过次数也会报错 浏览器开始解析文件,如果是 gzip 格式的话会先解压一下,然后通过文件的编码格式知道该如何去解码文件 文件解码成功后会正式开始渲染流程,先会根据 HTML 构建 DOM 树,有 CSS 的话会去构建 CSSOM 树。如果遇到 script 标签的话,会判断是否存在 async 或者 defer ,前者会并行进行下载并执行 JS

Vue使用swiper动态加载数据,动态轮播数据显示白屏问题处

空扰寡人 提交于 2019-11-27 10:37:00
Vue使用swiper动态加载数据,动态轮播数据显示白屏问题处 公司临时需要配合安卓ios提供一个页面 其中用到轮播 懒加载等 为了省点事 我引了vue.js写的 没想到有一堆的bug 只好来查解决方案了 1.引进swiper.js swiper.css (我用的是3.4.2版本的(建议),经自己测试 4.0版本或者2.0版本的swiper写到页面中 不轮播 或者加载不到相应的js,css 具体为什么不能用 我也没找到根本原因 可能是我比较菜的缘故哈哈) 如果是vue-cil整个项目 使用vue-awesome-swiper会比较多 npm i swiper@3.4.2 -S // npm install vue-awesome-swiper --save 2.HTML <div class="swiper-container"> <div class="swiper-wrapper"> <div class="swiper-slide">Slide 1</div> <div class="swiper-slide">Slide 2</div> <div class="swiper-slide">Slide 3</div> </div> <!-- 如果需要分页器 --> <div class="swiper-pagination"></div> <!-- 如果需要导航按钮 -->

如何实现图片懒加载

生来就可爱ヽ(ⅴ<●) 提交于 2019-11-27 08:49:04
一、什么是懒加载 将图片src先赋值为一张默认图片,当用户滚动滚动条到可视区域图片的时候,再去加载后续真正的图片 如果用户只对第一张图片感兴趣,那剩余的图片请求就可以节省了 二、为什么要引入懒加载 懒加载(LazyLoad)是前端优化的一种有效方式,极大的提升用户体验。图片一直是页面加载的流浪大户,现在一张图片几兆已经是很正常的事,远远大于代码的大小。倘若一次ajax请求10张图片的地址,一次性把10张图片都加载出来,肯定是不合理的。 三、懒加载中涉及的属性 1 、 document.documentElement.clientHeight; //表示浏览器可见区域高度: document.body.clientHeight //是整个页面内容的高度,而非浏览器可见区域的高度 2 、document.documentElement.scrollTop; //滚动条 已滚动的高度: chrome 中 document.body.scrollTop //滚动条 滚过的高度 那么要得到滚动条的高度:有一个技巧:   var scrollTop=document.body.scrollTop || document.documentElement.scrollTop;   这两个值总会有一个恒为0,所以不用担心会对真正的scrollTop造成影响。一点小技巧,但很实用。 3、

vuex和vue-router全家桶

爷,独闯天下 提交于 2019-11-27 03:28:38
vuex 关键词:state,getters,actions,mutations,store。 state为状态的参数。 getters为获取器,用于过滤的方法获取参数。 mutations是改变状态参数的函数,但是不能直接被调用,需要对应的 store.commit (可以额外传参数)。 actions不是直接修改状态,而是基于mutations,可以执行异步处理 store更像一个容器,装着以上的所有函数和参数,最后需要注入到Vue的实例当中。 2.0 特性--辅助函数 辅助函数j就是可用可不用。如果你用了,它就会提高代码编写效率的。 mapState mapGetter mapMutation 举个例子,如果不用辅助函数 mapState , computed: { count () { return this.$store.state.count } } 使用辅助函数 mapState , computed: mapState([ // 映射 this.count 为 store.state.count 'count' ]) 如果不用辅助函数 mapGetter computed: { doneTodosCount () { return this.$store.getters.doneTodosCount } } 使用辅助函数 mapGetter computed: {

Vue 路由懒加载

喜你入骨 提交于 2019-11-27 02:53:30
路由和组件的常用两种懒加载方式: 1、 vue异步组件实现路由懒加载   component:resolve=>(['需要加载的路由的地址',resolve]) 2、 es提出的import(推荐使用这种方式)    const HelloWorld = ()=>import('需要加载的模块地址') 详情参考网络连接: https://www.cnblogs.com/-roc/p/9983177.html 来源: https://www.cnblogs.com/jiaqi1719/p/11339556.html

【应对网页图片懒加载】

时光总嘲笑我的痴心妄想 提交于 2019-11-27 02:52:48
原文: http://106.13.73.98/__/133/ 图片懒加载概念 图片懒加载是一种网页优化技术。图片作为一种网络资源,在被请求时也与普通静态资源一样,将占用网络资源,而一次性将整个页面的所有图片加载完,将会大大增加页面的首屏加载时间。为了解决这个问题,通过前后端配合,使图片仅在浏览器当前视窗内出现时才加载该图片,达到减少首屏请求数的技术就被成为“图片懒加载”。 网站一般如何实现图片懒加载技术呢? 在网页源码中,在img标签中首先会使用一个“伪属性”(通常使用src2,original...)来存放真正的图片链接,而并非存放在src属性中。当图片出现到页面的可视化区域中时,会动态将伪属性替换成src属性,完成图片的加载。 实例:Python爬虫抓取站长素材网中的图片 import os import requests from lxml import etree import urllib.request from fake_useragent import UserAgent as ua from concurrent.futures import ThreadPoolExecutor # 站长素材网 url = 'http://sc.chinaz.com/tupian/gudianmeinvtupian.html' headers = { 'User-Agent':

【应对网页图片懒加载】

醉酒当歌 提交于 2019-11-27 02:50:25
原文: http://106.13.73.98/__/133/ 图片懒加载概念 图片懒加载是一种网页优化技术。图片作为一种网络资源,在被请求时也与普通静态资源一样,将占用网络资源,而一次性将整个页面的所有图片加载完,将会大大增加页面的首屏加载时间。为了解决这个问题,通过前后端配合,使图片仅在浏览器当前视窗内出现时才加载该图片,达到减少首屏请求数的技术就被成为“图片懒加载”。 网站一般如何实现图片懒加载技术呢? 在网页源码中,在img标签中首先会使用一个“伪属性”(通常使用src2,original...)来存放真正的图片链接,而并非存放在src属性中。当图片出现到页面的可视化区域中时,会动态将伪属性替换成src属性,完成图片的加载。 实例:Python爬虫抓取站长素材网中的图片 import os import requests from lxml import etree import urllib.request from fake_useragent import UserAgent as ua from concurrent.futures import ThreadPoolExecutor # 站长素材网 url = 'http://sc.chinaz.com/tupian/gudianmeinvtupian.html' headers = { 'User-Agent':