首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何提高分页速度

问如何提高分页速度
EN

Stack Overflow用户
提问于 2013-03-16 06:50:25
回答 3查看 1.2K关注 0票数 0

在我的项目中,我使用PHP进行了分页,具体如下:每个按钮(下一页和前一页)都是超链接,通过传递GET变量(PAGENUMBER)链接到同一个页面。对于每一页更改,都有以下脚本:

  1. 连接到DB。
  2. 查询指定页的数据。
  3. 关闭
  4. DB连接显示数据。

问题是它正在缓慢地工作。在每次连接到db和查询数据并关闭db连接时,是否有其他方法。

另外,在分页期间,我只想重新加载来自DB的数据,页面中的所有其他内容保持不变,不想重新加载。如何做到这一点?

下面给出了脚本

代码语言:javascript
复制
    <?php
require_once("./include/membersite_config.php");    //include files for login system
if($fgmembersite->CheckLogin())
{
    $login=true;
}
else
{
    $login=false;
}
require_once("db.php"); 
$con=connect();     //connect to db and select the db
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<HTML>
    <HEAD>
        <TITLE> Gallery </TITLE>
        <META name="generator" content="Adobe Photoshop(R) CS Web Photo Gallery">
        <META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
        <link href="images/galleryStyle.css" rel="stylesheet" type="text/css">
         <link rel="STYLESHEET" type="text/css" href="style/new.css" />
    </HEAD>
<body  marginheight=0 marginwidth=0 leftmargin=0 topmargin=0>
<table><tr>
<?php
//////////////////DISPLAYING IMAGE THUNBNAILS//////////////////////
$query="SELECT COUNT(*) FROM gallery ";
$res = query($query);
$raw=mysql_fetch_array($res);
$imagecount=$raw[0];
if($imagecount==0) { die ("No images found"); }
$pagecount=ceil($imagecount/15); 
$page = isset($_GET['page']) ? mysql_real_escape_string($_GET['page']) : 1;
if (isset($_GET['page']))
{
   if (!(ctype_digit($_GET['page']) and $_GET['page']>0 and $_GET['page']<=$pagecount))
   { 
       die ("You are not autorised to viw this page");
   }
}
$start= ($page*15)-15; 
$query = "SELECT * FROM gallery  ORDER BY imageid DESC LIMIT $start , 15";
$res = query($query);
$count= mysql_num_rows($res);
$index=0;
for($i=1;$i<=3;$i++)
{
?>
<TR>
<?php
for($j=1;$j<=5;$j++)
{
   if(!$raw=mysql_fetch_array($res)) {break;}
   $index++;
   $imageid=$raw['imageid'];
   $thumbpath= $raw['thumbpath'];
   $largepath=$raw['largepath'];
   $caption=$raw['caption'];
?>
<A name=1 href="image.php?imageid=<?php echo $imageid ?>&imageindex=<?php echo ((($page-1)*15)+$index-1) ;  ?> "><IMG  border=0 src="<?php echo $thumbpath; ?>" height="75" width="75" alt="<?php echo $caption ?>" title="<?php echo $caption ?>" ></A><BR>
<?php
echo "<a href='delete.php?delete=yes&imageid=".$imageid.'&page='.$page."'>Delete </a>"
echo "<a href='replace.php?update=yes&imageid=".$imageid.'&page='.$page."'>Replace </a>"
?>
</table>
</td>
<?php } ?>
</TR>
<?php
} 
if ($page!=1)
{
?>
<td width=17><a href=" <?php echo $_SERVER['PHP_SELF'].'?page='.($page-1); ?> "><IMG SRC="images/previous.gif" BORDER=0></a></td>
<?php  } ?>
<td align=middle class="pagenums"><?php echo "page ".$page." of ".$pagecount ?></td>
<?php
if ($page!=$pagecount)
{
?>
<td align=right width=17><a href=" <?php echo $_SERVER['PHP_SELF'].'?page='.($page+1); ?> "><img border=0 src="images/next.gif"></a></td>
<?php } ?>
</table>
</body>
</html>
EN

回答 3

Stack Overflow用户

发布于 2013-03-16 07:38:01

有很多可供选择的

  1. 使用javascript分页
  2. ajax分页
  3. 尽量减少分页代码(优化代码)
票数 1
EN

Stack Overflow用户

发布于 2013-03-16 07:14:21

对于每次页面更改,不需要连接/关闭db。

票数 0
EN

Stack Overflow用户

发布于 2013-03-16 08:02:25

使用ajax脚本通过重新加载当前页面来连接和获取数据库值,您可以这样做?-试试ajax。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15446442

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档