lazyload

js实现网页图片延时加载(加载可见区域)的原理和代码 提高网站打开速度

一笑奈何 提交于 2019-12-09 16:31:15
有时我们看到一些大型网站,页面如果有很多图片的时候,当你滚动到相应的行时,当前行的图片才即时加载的,这样子的话页面在打开只加可视区域的图片,而其它隐藏的图片则不加载,一定程序上加快了页面加载的速度,对于比较长的页面来说,这个方案是比较好的。 推荐:使用jquery图片延迟加载插件jquery.lazyload实现图片延迟 实现原理: 把所有需要延时加载的图片改成如下的格式: <img lazy_src="图片路径" border="0"/> 然后在页面加载时,把所有使用了lazy_src的图片都保存到数组里,然后在滚动时计算可视区域的top,然后把延时加载的图片中top小于当前可视区域(即图片出现在可视区域内)的图片的src的值用lazy_src的来替换(加载图片): JS代码: lazyLoad = (function() { var map_element = {}; var element_obj = []; var download_count = 0; var last_offset = -1; var doc_body; var doc_element; var lazy_load_tag; function initVar(tags) { doc_body = document.body; doc_element = document.compatMode ==

How to lazy load images vertically & horizontally?

耗尽温柔 提交于 2019-12-06 15:20:06
My website has a image grid, which has horizontal and vertical scroll. I want to load images which are vertically places first and then horizontal images, all of them lazily. In other words, when user scroll down vertical images should load lazily and when user scrolls horizontally images the horizontal images should load lazily. I tried using lazyload , but I'm not able to use get it working for both vertical and horizontal images container. Only horizontal or vertical scrolling is working at a time. I want both of them to work! My test code is as follows, <script src="http://ajax.googleapis

图片懒加载

独自空忆成欢 提交于 2019-12-06 06:44:14
图片懒加载下载地址:https://www.npmjs.com/package/vue-lazyload 第一步:下载 $ npm i vue-lazyload -S 第二步: 配置 第三步:使用 来源: https://www.cnblogs.com/psxiao/p/11966296.html

Loading async Google Maps in AngularJS

做~自己de王妃 提交于 2019-12-06 04:22:47
问题 I'm trying to lazyload Google Maps in my AngularJS project. I see the map getting loaded async in the DOM when I inspect, but it doesn't appear in the viewport of my Chrome browser. What am I missing? Here is the plunker. http://embed.plnkr.co/5LYp91Wl7xrJ1QcNEN2W/preview Here is the JS code for the factory and the directive: (function() { 'use strict'; angular .module('myapp', []) .factory('mapsInit', mapsInitFactory) .directive('propertyMap', propertyMap); function mapsInitFactory($window,

前端性能优化之Lazyload

末鹿安然 提交于 2019-12-04 18:46:44
前端性能优化之Lazyload @(Mob前端-冬晨)[JavaScript|技术分享|懒加载] [TOC] Lazyload 简介 前端工作中,界面和效果正在变得越来越狂拽炫酷,与此同时性能也是不得不提的问题。有些项目,页面长,图片多,内容丰富。像商城页面。如果同步加载时一次性加载完毕,那肯定是要等到花都谢了,loading转的人都崩溃~。今天分享的是Lazyload技术 是一种延迟加载技术。让页面加载速度快到飞起、减轻服务器压力、节约流量、提升用户体验。 一、实现思路 页面较长,屏幕的可视区域有限。 不设置页面中 img标签 的 src属性 值或者将其指向同一个占位图。 图片的实际地址存在 img标签 自定义的一个属性中,如:“data-url”。 监听 scroll ,滚动到某个位置时,动态的将url替换成实际的“data-url”。 二、上代码 html部分(简单示意下结构) <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Lazyload</title> <style type="text/css"> .mob-wrap li{list-style: none;width: 100%;height: 345px;} </style> </head> <body> <ul class="mob-wrap

懒加载和预加载

怎甘沉沦 提交于 2019-12-04 04:20:13
一、懒加载 1.什么是懒加载 懒加载也叫延迟加载,指的是在长网页中延迟加载图像,是一种很好优化网页性能的方式 。用户滚动到它们之前,可视区域外的图像不会加载。这与图像预加载相反,在长网页上使用延迟加载将使网页加载更快。在某些情况下,它还可以帮助减少服务器负载。常适用图片很多,页面很长的电商网站场景中。 2.为什么要用懒加载 能提升用户的体验 ,不妨设想下,用户打开像手机淘宝长页面的时候,如果页面上所有的图片都需要加载,由于图片数目较大,等待时间很长,用户难免会心生抱怨,这就严重影响用户体验。 减少无效资源的加载 ,这样能明显减少了服务器的压力和流量,也能够减小浏览器的负担。 防止并发加载的资源过多会阻塞js的加载 ,影响网站的正常使用。 3.懒加载的原理 首先将页面上的图片的 src 属性设为空字符串,而图片的真实路径则设置在data-original属性中, 当页面滚动的时候需要去监听scroll事件,在scroll事件的回调中,判断我们的懒加载的图片是否进入可视区域,如果图片在可视区内将图片的 src 属性设置为data-original 的值,这样就可以实现延迟加载。 4.懒加载实现步骤 <html lang="en"> <head> <meta charset="UTF-8"> <title>Lazyload</title> <style> .image-item {

NHibernate: can&#039;t successfully set lazy loading

匿名 (未验证) 提交于 2019-12-03 02:29:01
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: I have a table Parent and a table Child. Child contains a foreign-key to the Parent table, creating a one-to-many relationship. Here is a part of my mapping that I define with fluent NHibernate: public class ParentMap : ClassMap<Parent> { public ParentMap() { WithTable("Parents"); Id(x => x.Id, "ParentID") .WithUnsavedValue(0) .GeneratedBy.Identity(); Map(x => x.Description, "Description"); HasMany<Child>(x => x.Childs) .LazyLoad() .WithKeyColumn("ParentID") .IsInverse() .AsSet(); } } public class ChildMap : ClassMap<Child> { public ChildMap

Fragment懒加载

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-02 15:06:43
解决viewpager加载多个fragment 设置预加载的方法失效问题 引入fragment懒加载 只有当页面显示的时候才被加载 主要使用到的方法:setUserVisibleHint()、userVisibleHint,界面显示到不显示,以及不显示到显示都会执行setUserVisibleHint方法 abstract class LazyFragment: Fragment(){ private var isPrepare:Boolean =false private var isLoaded:Boolean =false override fun onActivityCreated(savedInstanceState: Bundle?) { super.onActivityCreated(savedInstanceState) isPrepare=true lazyLoad() } override fun setUserVisibleHint(isVisibleToUser: Boolean) { super.setUserVisibleHint(isVisibleToUser) lazyLoad() } private fun lazyLoad() { if(userVisibleHint&&isPrepare&&!isLoaded){ onLazyLoad()

iBATIS ResultMap基础浅析

拜拜、爱过 提交于 2019-12-01 22:49:23
ibatis resultmap 是我们学习 ibatis 中非常重要的一个内容,在我个人看来,能否真正用好 ibatis 的一个关键,这就是 resultmap 。字面上理解,它就是结果集的映射,就是将返回的记录逐 个字段的映射赋值给对象的属性上。其实如果没有特殊需求的话我们完全可以使用 resultclass 来代替它,因为如果字段与属性一模一样的话,查询出来数据集会自动匹配到 resultclass 指定的类的实例对象,如果字段名不在属性中的话,那这个字段将不会被返回的 实例体类对象接受,相当于没有查询出这个字段一样的。 每个 resultmap 都有一个自己的 id ,如果你在 sqlmap.config 中没有配置使用命名空间的话, 那么这个 resultemap id 是全局(这点在所有的 ibatis 配置元素都是一样的), resultmap 一个 重要的属性的是 class, 它将决定这个 resultmap 对应的实例的类,换句话讲,它的作用是指出 结果集要映射的数据类型。在 extends 属性中可以设置它将要继承的 resultmap ,如果给他指 定的了值,那么它将会从 super resultmap 继承所的映射配置字段。定义如下: ﹤ resultmaps ﹥ ﹤ resultmap id="demoresultmap" class=

Javascript 加载性能优化

删除回忆录丶 提交于 2019-12-01 13:58:17
浏览器对javascript的处理主要有2部分:下载和执行 下载在有些浏览器中是并行的,有些浏览器中是串行的,如IE8、Firefox3、Chrome2都是串行下载的 执行在所有浏览器中默认都是阻塞的,当js在执行时不会进行html解析等其它操作 阻塞特性: javascript有个阻塞特性,当浏览器执行javascript代码时,不能同时做其它任何事情。无论当前javascript代码是内嵌还是在外链文件中,页面的下载和渲染都必须停下来等待脚本执行完成。浏览器在下载和执行脚本是进出现阻塞的原因在于,脚本可能会改变页面或javascript的命名空间,它们对后面页面内容造成影响。 一、脚本位置 浏览器在碰到一个引入外部javascript文件的<script>标签时会停下所有工作来下载并解析执行它,在这个过程中,页面渲染和用户交互完全被阻塞了。例: <html> <head> <title>无标题文档</title> <link rel="stylesheet" type="text/css" href="styles.css" /> <script type="text/javascript" src="file1.js"></script> <script type="text/javascript" src="file2.js"></script> <script type=