phalcon分页的处理
2016-07-26 21:50
218 查看
由于项目是用phalcon做的,主要是处理api,也做些简单的web页面。
有一个页面是显示日志的,结果后来日志达到几万条后php内存爆了,查了一下代码,
居然是直接读出所有数据库数据,使用的\Phalcon\Paginator\Adapter\NativeArray来做分页的,被雷到了。
但是我又不想改动view,查看了一下Paginator的属性,于是简单写了十多行,一切ok了。
在查询的地方修改
则每次查询后把结果传给pageNew函数即可,遗憾的每次翻页时都要做一次count,不过考虑到次数在查询时会变化,而且也不会浏览全部,还是可以接受的。
有一个页面是显示日志的,结果后来日志达到几万条后php内存爆了,查了一下代码,
居然是直接读出所有数据库数据,使用的\Phalcon\Paginator\Adapter\NativeArray来做分页的,被雷到了。
但是我又不想改动view,查看了一下Paginator的属性,于是简单写了十多行,一切ok了。
function pageNew($pageNum,$pageSum,$items) { $page = new \stdClass(); $page->items=$items; $page->current=$pageNum; $page->before=$pageNum-1; $page->next=$pageNum+1; $page->last=$pageSum; $page->total_pages = $pageSum; $this->view->page = $page; }
在查询的地方修改
$currentPage = $this->request->getQuery('page', 'int'); if(empty($currentPage) || $currentPage < 1) { $currentPage = 1; } $limit = " LIMIT ". ($currentPage-1)*self::PAGE_LIMIT . "," . self::PAGE_LIMIT;
则每次查询后把结果传给pageNew函数即可,遗憾的每次翻页时都要做一次count,不过考虑到次数在查询时会变化,而且也不会浏览全部,还是可以接受的。
相关文章推荐
- Chapter 1 First Sight——2
- Trie图入门题
- linux变量 set env export的区别
- 相机姿态估计(一)--PnP
- python 学习(八)之 break 语句
- 半透明边框
- Java中常见关键字
- 迭代器
- Hessian+Maven Demo 一个简单的实例(有问题,可以提问,经常在线,源码会粘上连接,可下载)
- yum命令的基本使用
- label标签的作用
- Java输出空心菱形,代码超简洁
- socket网络编程
- ART世界探险(9) - 同步锁
- Task schedule<hdoj4907>
- 豆瓣图书搜索系统实验
- 类的静态成员问题
- [置顶] JAVA项目三:JAVA实现MD5文件校验
- 使用IDEA Debug Spark源码
- 21款最优秀的开源数据库