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

来源:互联网 发布:中科院研究生软件所 编辑:程序博客网 时间:2024/05/18 03:06

声明:本文同时发表于一搏IT社区、CSDN、昨夜风个人网站,欢迎任何网站/个人转载,但请保留声明信息和作者信息,多谢合作!

作者:靳英辉(昨夜风)
版本: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、简单实现,未能优化。
分页,并不是显示出页脚,上一页下一页就OK了,分页的好坏,直接影响软件系统的运行,服务器的负荷。一般的分页只是实现,未能达到优化。
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   <<     
      $rid
      $news_name
      $news_time
   
EOF;
     }
?>


foot ?>

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

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

 


原创粉丝点击