2024年04月02日
<!--
* @Descripttion:
* @Author: voanit
* @Date: 2022-09-11 09:07:08
* @LastEditors: voanit
* @LastEditTime: 2022-09-11 10:05:18
-->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.viewport {
width: 300px;
height: 200px;
border: 1px solid blue;
overflow: auto;
}
.box1 {
height: 600px;
width: 100%;
}
.observed {
width: 100px;
height: 100px;
border: 1px solid green;
}
.imgs {
width: 100px;
height: 100px;
}
</style>
</head>
<body>
<div class="viewport" id="viewport">
<div class="box1">
<img src="./place.jpg" data-src="http://p8.qhimg.com/bdr/__85/t01e5f605262fb61fb4.jpg" alt="图片" class="imgs" />
<img src="./place.jpg" data-src="http://p8.qhimg.com/bdr/__85/t01e5f605262fb61fb4.jpg" alt="图片" class="imgs" />
<img src="./place.jpg" data-src="http://p8.qhimg.com/bdr/__85/t01e5f605262fb61fb4.jpg" alt="图片" class="imgs" />
<img src="./place.jpg" data-src="http://p8.qhimg.com/bdr/__85/t01e5f605262fb61fb4.jpg" alt="图片" class="imgs" />
<img src="./place.jpg" data-src="http://p8.qhimg.com/bdr/__85/t01e5f605262fb61fb4.jpg" alt="图片" class="imgs" />
<img src="./place.jpg" data-src="http://p8.qhimg.com/bdr/__85/t01e5f605262fb61fb4.jpg" alt="图片" class="imgs" />
<img src="./place.jpg" data-src="http://p8.qhimg.com/bdr/__85/t01e5f605262fb61fb4.jpg" alt="图片" class="imgs" />
<img src="./place.jpg" data-src="http://p8.qhimg.com/bdr/__85/t01e5f605262fb61fb4.jpg" alt="图片" class="imgs" />
<img src="./place.jpg" data-src="http://p8.qhimg.com/bdr/__85/t01e5f605262fb61fb4.jpg" alt="图片" class="imgs" />
<img src="./place.jpg" data-src="http://p8.qhimg.com/bdr/__85/t01e5f605262fb61fb4.jpg" alt="图片" class="imgs" />
<img src="./place.jpg" data-src="http://p8.qhimg.com/bdr/__85/t01e5f605262fb61fb4.jpg" alt="图片" class="imgs" />
<img src="./place.jpg" data-src="http://p8.qhimg.com/bdr/__85/t01e5f605262fb61fb4.jpg" alt="图片" class="imgs" />
<img src="./place.jpg" data-src="http://p8.qhimg.com/bdr/__85/t01e5f605262fb61fb4.jpg" alt="图片" class="imgs" />
<img src="./place.jpg" data-src="http://p8.qhimg.com/bdr/__85/t01e5f605262fb61fb4.jpg" alt="图片" class="imgs" />
<img src="./place.jpg" data-src="http://p8.qhimg.com/bdr/__85/t01e5f605262fb61fb4.jpg" alt="图片" class="imgs" />
<img src="./place.jpg" data-src="http://p8.qhimg.com/bdr/__85/t01e5f605262fb61fb4.jpg" alt="图片" class="imgs" />
</div>
</div>
<script>
let viewport = document.getElementById("viewport"); // 可视区域
let imgList = document.querySelectorAll(".imgs"); // 被观察元素
/* 开启观察者 */
// var IO = new IntersectionObserver(回调,配置项)
var IO = new IntersectionObserver(fn, {})
function fn (entry) {
console.log(entry, 'fn');
entry.forEach(item => {
if (item.isIntersecting) {
/* 表示进入可是区域 */
console.log(item.target.getAttribute('data-src'));
// item.target.src = item.target.getAttribute('data-src')
item.target.src = item.target.dataset.src
IO.unobserve(item.target)
} else {
/* 离开 */
}
})
}
// console.dir(IO.observe());
/* 观察img */
imgList.forEach(item => {
// console.log(item);
IO.observe(item)
})
</script>
</body>
</html>
2024年04月02日
在实际的项目开发中,我们通常会遇见这样的场景:一个页面有很多图片,而首屏出现的图片大概就一两张,那么我们还要一次性把所有图片都加载出来吗?显然这是愚蠢的,不仅影响页面渲染速度,还浪费带宽。这也就是们通常所说的首屏加载,技术上现实其中要用的技术就是图片懒加载--到可视区域再加载。JS实现图片懒加载
2024年04月02日
Spring Jpa这项技术在Spring 开发中经常用到。 今天在做项目用到了Entity的关联懒加载,但是在返回Json的时候,不管关联数据有没有被加载,都会触发数据序列化,而如果关联关系没有被加载,此时是一个HibernateProxy,并不是真实的数据,而导致了报错。
2024年04月02日
懒加载机制是一种性能优化的机制,当查询一个表中的信息包含另外一个表的信息,如果没有直接使用到另外一个表,那么hibernate不会级联的将另外一个与之关联的表也查出来,只有当你直接使用到另外一个表的信息的时候才会重新发送语句进行查询,前提是事务没有提交(session没有被关闭)hibernate懒加载机制
2024年04月02日
SpringDataJPA的底层是 hibernate,经常引发各种问题,特别是懒加载问题 不求性能,一劳永逸解决spring.jpa.properties.hibernate.enable_lazy_load_no_trans=true
2024年04月02日
懒加载问题描述
2024年04月02日
树形表格懒加载,为大量数据展示提供了便利。 设置数据中的hasChildren属性,即可展示展开标记,点击展开标记,自动加载load方法,填充子数据到当前行,完成展示。
2024年04月02日
我们有一个页面,展示图片列表的,图片很多多到当前屏幕展示不下。懒加载就是加载可视区域内的图片。一般图片我们是使用 <img> 标签来实现的,浏览器根据标签上的 src 属性来发起获取图片的请求。我们在未进入到可视区域内,先不给 <img> 标签添加 src 属性,这样动态的控制标签 src 属性就可以完成懒加载了。什么是图片懒加载