-------------------------------
延迟加载的特性,也有的称为惰性加载,可以最大程度避免了数据库的开销,并做到按需获取,提升了性能。系统在模型初始化的时候会创建数据库操作对象,但是这个时候并不会马上进行数据库连接,而是会在第一次实际查询的时候才会进行连接。对于有些查询,还可以采用延迟加载,在执行查询操作的时候并不会立刻进行查询,而是等到需要使用查询返回数据的时候才进行查询。该特性对于查询大量数据的时候非常有用。
延迟加载是由数据库抽象层底层支持的,Db类内置了lazyQuery方法来提供延迟加载支持,原则上,任何查询都可以使用延迟加载。和普通查询返回一个ArrayObject对象不同的是,延迟加载返回的是一个ResultIterator对象,只有在遍历的时候才真正进行查询操作
不好的写法:
优化: 使得t不会污染全局变量。
完美版: 使得第一次调用test函数之后,不会再进行if-else的判断,而是在第2、3、......、n次调用test时直接获取到t的值。
应用: 添加绑定事件(原版)
使用惰性函数优化(改进版):