欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

再出江湖,Jpage分页php版发布

程序员文章站 2022-05-11 22:21:43
...

作者:靳英辉(昨夜风) 版本:Jpage v2.0 for php 发表:2008-12-02 ______________________________________________________________ 在先后推出针对Java、.Net2.0开发语言下的Jpage两版分页之后,随着一搏IT社区、abcbaby、加拿房产网、中国开源网的开发需

作者:靳英辉(昨夜风)
版本:Jpage v2.0 for php
发表:2008-12-02

______________________________________________________________


在先后推出针对Java、.Net2.0开发语言下的Jpage两版分页之后,随着一搏IT社区、abcbaby、加拿房产网、中国开源网的开发需求,以及新东方一搏PHP01班的盛大起航,对php下的Jpage分页需求,提上日程。

版本历史:
2007年10月,Jpage分页php版诞生,初步应用于几个项目中。
2007年11月,我和PHP01的学生们,一起对Jpage第一版进行了全面的测试和完善。
2008年12月,Jpage 2.0 php的诞生。

Jpage v2.0 for php

特点:
1、通用的数据封装。
只需包含mysql.php,解决所有增、删、改、查的问题。执行SQL语句、执行过程、返回数组结果、返架一行结果、返回一行一列,尽在其中。
对数据持装类,吸纳了微软的.NET数据层的思想,结合了实际开发需求,将大大提高开发效率。

2、只需一条查询语句。
使用简单、开发快捷、最优查询一直是Jpage系列分页的核心思想。只需一条语句,即支持普通查询、海量查询,并同时得到多种分页样式, 这就是Jpage分页。

3、优化小量查询和海量查询。
经Mysql5 260万条数据测试,Jpage分页执行飞快。明显优于网上其它分页以及基于PHP程序层结果集的分页。在Mysql中,Jpage分页采用了limit来分页,这延续了Jpage分页“需多少,取多少”基于数据库层面的分页思想。

4、内置三种页脚风格。
为了解决不同的显示需求,Jpage分页内置了三种页脚显示风格:
默认样式:适合一般企业需求。
简捷样式:适合窄页面显示需求。
数据样式:适合海量数据显示需求。
除了上述三种风格之外,开发者还可在footPage.php中自定义风格。


5、灵活的页脚样式控制。
你可以定义诸如:#page a{color:red}样式表文件,来得到不同显示效果。

6、与Jwork框架无缝集成。
作为Jwork框架的前身,Jpage分页,它不是一个在战斗。Jwork框架是软件开发的经验集、通用集、效率集。


对比:

一般分页/自定分页存在的问题:

1、网址传参的问题。
网上有些分页,包括我们自己写的分页,往往忽略了网址传参的问题。我们知道,分页的网址一般为:
list.php list.php?page=2,

但当网址有参数时,
list.php?name=yiboit&id=20
一般分页则为:list.php?page=2
Jpage分页为:list.php?name=yibit&id=20&page=2

2、书写复杂、代码冗余、和数据层独立。
一般的分页,和数据层独立,并且和视图(页面)过于耦合,在使用上、开发上、运行效率上都是值得商榷的。
Jpage分页,已先后发布Java、.Net、PHP三版,基于同一思想,经过百万级项目测试、压力测试,尚未出现任何问题。
Jpage分页,把分页作为数据层一个功能,把显示层(分页样式)以配置文件独立出来,站在“松散耦合”的高度,让开发如此便捷。

3、基于结果集的分页或基于存储过程。
分页主要有两种方案,一种是基于结果集的指针,一种是基于数据端TOP N的思想。

基于结果集指针的方案,不管你每页看多少数据,我都把数据取出来,然后用指针控制显示哪部分。这种方案,不适合大量/海量数据的查询。
另一方案,就是TOP N的思想,即“需多少,取多少”,这种方案支持海量查询,但一般需要写两条sql语句,且写法复杂,所以有些程序员,用存储过程来实现了,在网上可以看到许多基于过程的海量分页解决方案。因为书写复杂,让许多程序员,特别是ASP程序员,放弃了。

可见,“需多少,取多少”的分页,方为上道。业界知名Hibernate数据层框架,采用的就是TOP N的分页,但Hibernate未能显示页脚,也未能整合分页语句,所以留下了分页“遗憾”,也许也不是“遗憾”,因为Hibernate旨在解决对象的持久化问题,而不是分页问题。

Jpage分页弥补以上所有不足,支持普通查询、海量查询,同时使用简单。Jpage分页的方便程度,对开发者而言,已达到了实现分页,和不实现的写法是一样的。

4、简单实现,未能优化。

Jpage分页,已走过了一年的历程,在数据查询上,已达到了对数据查询最为优化的状态;在代码结构上,先后做了多次调整的设计;在项目使用上,先后被csdn、yiboit、zuoyefeng等网站的朋友,大量被下载使用。

示例:


include("../jwork/mysql.php");

//SQL查询语句
$sqllist="select * from news";

//得到Jwork数据对象
$data= new MysqlDao();

//设置分样样式,默认为default
$data->style="data";

//分页查询,返回二维数组
$list=$data->jpage($sqllist);

?>








while (list($rowid,$row)=each($list))
{


$rid=$data->jpageRowId($rowid); //序号
$news_title=$row["news_title"];
$news_time=$row["news_time"];

echo




EOF;
}
?>
序号 新闻名称
$rid $news_name $news_time



foot ?>

敬请关注:
2008年1月1日,Jpage分页三个版本,将全面开源!
届时,Jpage分页,将作为ccopen.net中国源码开放社区第一个开源项目出现。

Jpage,做好分页,做好自己!
欲求源码,留下大名和邮箱!