0、背景
Web应用程序做的最多就是和后台数据库交互,而查询数据库是种非常耗时的过程。当数据库里记录过多时,查询优化更显得尤为重要。为了解决这种问题,有人提出了缓存的概念。缓存就是将用户频繁使用的数据放在内存中以便快速访问。在用户执行一次查询操作后,查询的记录会放在缓存中。当用户再次查询时,系统会首先从缓存中读取,如果缓存中没有,再查询数据库。缓存技术在一定程度上提升了系统性能,但是当数据量过大时,缓存就不太合适了。因为内存容量有限,把过多的数据放在内存中,会影响电脑性能。而另一种技术,懒加载可以解决这种问题。
1、懒加载基本概念
懒加载——也称为延迟加载,即在需要的时候才加载(效率低,但占用内存小)。所谓懒加载,重新设计的是其get方法。
注意:如果是懒加载的话则一定要注意先判断是否已经有了,如果没有那么再去进行实例化。
2、使用懒加载的好处
能够在需要某部分数据的时候自动获取更多的数据,而不是一次性加载所有的数据。新得到的数据不会影响原有数据的显示,同时最大程度上减少服务器端的资源耗用。
3、应用案例
考虑这样一个例子:海尔电器是一个非常大的组织机构,它下有1万多个组织单元。由于组织单元的复杂性,组织单元间也存在着上下级关系。现在的问题是:用户想加入海尔电器的某个组织单元,他该怎么选择到这个组织单元呢?
很容易想到的一个解决方法是:查询数据库,把海尔电器的所有组织单元放到一个下拉列表中,让用户选择即可。这样的确是解决问题了,但是,测试发现,浏览器在显示组织单元数据时就直接假死了。看来,这样做性能太差,可以不采纳。
另一个解决方法就是利用懒加载技术。由于组织单元间存在着上下级关系,那么组织单元的排列就可以当作一棵树来处理。在显示数据时只显示父节点,点击父节点时,就能显示父节点下的子节点。
用户要选择某个组织单元,只需点击该组织单元的父亲节点就能找到该组织单元。
可以看出,懒加载节省了系统响应时间,提升了系统性能,非常具有利用价值。
网友评论