分页与同异步
面对庞大的数据,我们不得不采用分页的方法,才能井然有序的阅读,分页的使用非常简单,
指向一个用于存放分页的容器,通过服务端得到一些初始值,就可以完成分页的渲染:
通过核心方法:laypage.render(options)来设置基础参数:
- Elem 指向存放分页的容器,值可以是容器ID,DOM对象
- Count 数据总数,一般服务端得到
- Limit 每页显示的条数,借助count和limit计算出分页数
- Limits 每页条数的选择项,开启limit之后,就会出现每页条数的select选择框
- Curr 起始页,一般用于刷新类型的跳页以及HASH跳页
- Groups 连续出现页码个数
- Prev 自定义“上一页”的内容
- Next 自定义“下一页”的内容
- Frist 自定义“首页”的内容
- Last 自定义“尾页”的内容
- Layout 自定义排版
- Theme 自定义主题
- Hash 开启location.hash,并自定义hash值。如果开启了,在触发分页时,会自动对url追加:#hash值={curr} 利用这个,可以在页面载入时就可以定位到指定页
注意:当分页被切换时触发,函数返回两个参数:obj(当前分页的所有选项值),first (是否首次,一般用于初始加载的判断):
Laypage只负责分页本身的逻辑,具体的数据请求与渲染需要另外去完成,laypage不仅能应用在一般的异步分页上,还可以直接对一段已知数据进行分页展现,更可以取代传统的超链接分页。
说到异步,不由自主的想到还有一个同步,同步,异步又是什么样的呢?它们两者有什么相同之处,又有什么不同之处呢?
在Java中,同步是发送一个请求,需要等待返回,然后才能发送下一个请求,有一个等待过程,同步可以避免出现死锁;而异步是发送一个请求,不需要等待返回,随时可以再发送下一个请求,即不需要等待过程,异步则可以提高效率
相同之处:两者都属于交互方式,都是发送请求。
不同之处:一个需要等待,一个不需要等待。
同异步还与阻塞与非阻塞有关系,借用个例子说明一下(例子来源于百度)
所谓同步异步,只是对于水壶而言。
普通水壶,同步;响水壶,异步。
虽然都能干活,但响水壶可以在自己完工之后,提示老张水开了。这是普通水壶所不能及的。
同步只能让调用者去轮询自己(情况2中),造成老张效率的低下。
所谓阻塞非阻塞,仅仅对于老张而言。
立等的老张,阻塞;看电视的老张,非阻塞。
情况1和情况3中老张就是阻塞的,媳妇喊他都不知道。虽然3中响水壶是异步的,可对于立等的老张没有太大的意义。所以一般异步是配合非阻塞使用的,这样才能发挥异步的效用。