最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

jquery分頁(yè)優(yōu)化操作實(shí)例分析

 更新時(shí)間:2019年08月23日 10:07:23   作者:koastal  
這篇文章主要介紹了jquery分頁(yè)優(yōu)化操作,在前文jQuery分頁(yè)顯示的基礎(chǔ)上實(shí)現(xiàn)了避免頻繁查詢的相關(guān)優(yōu)化操作技巧,需要的朋友可以參考下

本文實(shí)例講述了jquery分頁(yè)優(yōu)化操作。分享給大家供大家參考,具體如下:

前言

上次寫了博客 jquery分頁(yè)顯示,文章的jquery分頁(yè)方式雖然可以通過js實(shí)現(xiàn)分頁(yè),但是也存在明顯的弊端。

該篇文章的思路是,每次通過ajax請(qǐng)求獲取到記錄,然后通過判斷當(dāng)前頁(yè)面,顯示或者隱藏記錄,以實(shí)現(xiàn)分頁(yè)效果。但是這種方式,每次切換分頁(yè)都需要從新請(qǐng)求一次記錄,頻繁的查詢數(shù)據(jù)庫(kù)。

下面提供一種,只需要加載一次(查詢一次數(shù)據(jù)庫(kù))就能實(shí)現(xiàn)分頁(yè)的思路。我們加載記錄之后,生成所有的分頁(yè)并隱藏,然后默認(rèn)顯示第一頁(yè)。切換分頁(yè)通過,分頁(yè)div的顯示和隱藏來實(shí)現(xiàn)。

創(chuàng)建數(shù)據(jù)庫(kù)語(yǔ)句

CREATE TABLE `news` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `title` varchar(255) NOT NULL,
 `time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=201 DEFAULT CHARSET=utf8

記錄查詢頁(yè)面

test.php

<?php
header("Content-Type:text/html;Charset=utf-8");
$mysqli = new mysqli("localhost","root","","test");
$mysqli->set_charset("utf8");
$query = $mysqli->query("SELECT * FROM news");
$res = $query->fetch_all(MYSQLI_ASSOC);
echo json_encode($res);

分頁(yè)顯示頁(yè)面

index.html

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
  <style type="text/css">
    .page{
      width: 1000px;
      margin-left: auto;
      margin-right: auto;
      text-align:center;
      display:none;
    }
  </style>
</head>
<body>
  <div id="listTag">
  </div>
</body>
<script type="text/javascript" src="http://localhost/jquery/jquery.js"></script>
<script type="text/javascript">
  $(function(){
    var avgNum = 18; //每頁(yè)顯示18條記錄
    $.ajax({
      type:"GET",
      url:"http://localhost/test.php",
      dataType:"json",
      success:function(data){
        var totalPage = data.length;  //獲取總的記錄數(shù)
        var pageNum = Math.ceil(totalPage/avgNum); //計(jì)算得到頁(yè)數(shù)
        var content = '';
        for(var i=1;i<=pageNum;i++){
          content += '<div id="page'+i+'" class="page"><ul>';
          for(var j=((i-1)*avgNum);j<(i*avgNum)&&j<totalPage;j++){
            content += '<li>'+data[j].title+'</li>';
          }
          content += '</ul>';
          content += '<hr/><div>';
          //前一頁(yè)
          if(i == 1){
            content += '<<&nbsp;&nbsp';
          }else{
            content += '<a href="javascript:showPage('+(i-1)+')" rel="external nofollow" rel="external nofollow" ><<</a>&nbsp;&nbsp';
          }
          //后一頁(yè)
          if(i == pageNum){
            content += '>>&nbsp;&nbsp';
          }else{
            content += '<a href="javascript:showPage('+(i+1)+')" rel="external nofollow" rel="external nofollow" >>></a>&nbsp;&nbsp';
          }
          content += '</div></div>';
        }
        //生成所有的div,并隱藏
        $("#listTag").append(content);
        showPage(1);
      }
    });
  });
  function showPage(num){
    $("#page"+num).show();
    $("#page"+num).siblings().hide();
  }
</script>
</html>

分頁(yè)效果:

這里寫圖片描述

分頁(yè)樣式二

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
  <style type="text/css">
    .page{
      width: 1000px;
      margin-left: auto;
      margin-right: auto;
      text-align:center;
      display:none;
    }
    .active{
      color:red;
    }
  </style>
</head>
<body>
  <div id="listTag">
  </div>
</body>
<script type="text/javascript" src="http://localhost/jquery/jquery.js"></script>
<script type="text/javascript">
  $(function(){
    var avgNum = 18; //每頁(yè)顯示18條記錄
    $.ajax({
      type:"GET",
      url:"http://localhost/test.php",
      dataType:"json",
      success:function(data){
        var totalPage = data.length;  //獲取總的記錄數(shù)
        var pageNum = Math.ceil(totalPage/avgNum); //計(jì)算得到頁(yè)數(shù)
        var content = '';
        for(var i=1;i<=pageNum;i++){
          content += '<div id="page'+i+'" class="page"><ul>';
          for(var j=((i-1)*avgNum);j<(i*avgNum)&&j<totalPage;j++){
            content += '<li>'+data[j].title+'</li>';
          }
          content += '</ul>';
          content += '<hr/><div>';
          //前一頁(yè)
          if(i == 1){
            content += '<<&nbsp;&nbsp';
          }else{
            content += '<a href="javascript:showPage('+(i-1)+')" rel="external nofollow" rel="external nofollow" ><<</a>&nbsp;&nbsp';
          }
          //顯示所有的頁(yè)碼
          for(var p=1;p<=pageNum;p++){
            content += '<a href="javascript:showPage('+p+')" rel="external nofollow" class="p'+p+'">'+p+'</a>&nbsp;&nbsp';
          }
          //后一頁(yè)
          if(i == pageNum){
            content += '>>&nbsp;&nbsp';
          }else{
            content += '<a href="javascript:showPage('+(i+1)+')" rel="external nofollow" rel="external nofollow" >>></a>&nbsp;&nbsp';
          }
          content += '</div></div>';
        }
        //生成所有的div,并隱藏
        $("#listTag").append(content);
        showPage(1);
      }
    });
  });
  function showPage(num){
    $("#page"+num).show();
    $("#page"+num).siblings().hide();
    $(".p"+num).addClass("active");
    $(".p"+num).siblings().removeClass("active");
  }
</script>
</html>

顯示效果

這里寫圖片描述

更多關(guān)于jQuery相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《jQuery擴(kuò)展技巧總結(jié)》、《jQuery表格(table)操作技巧匯總》、《jQuery常見經(jīng)典特效匯總》、《jquery選擇器用法總結(jié)》及《jQuery常用插件及用法總結(jié)

希望本文所述對(duì)大家jQuery程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • jQuery的remove()方法使用詳解

    jQuery的remove()方法使用詳解

    從DOM中刪除所有匹配的元素。這個(gè)方法不會(huì)把匹配的元素從jQuery對(duì)象中刪除,因而可以在將來再使用這些匹配的元素。但除了這個(gè)元素本身得以保留之外,其他的比如綁定的事件,附加的數(shù)據(jù)等都會(huì)被移除。我的理解就是將元素移除了。
    2015-08-08
  • Jquery 的outerHeight方法使用介紹

    Jquery 的outerHeight方法使用介紹

    獲取第一個(gè)匹配元素外部高度默認(rèn)包括補(bǔ)白和邊框,在本文將為大家介紹下具體的實(shí)現(xiàn)代碼,此方法對(duì)可見和隱藏元素均有效,感興趣的朋友可以了解下
    2013-09-09
  • 12個(gè)超實(shí)用的JQuery代碼片段

    12個(gè)超實(shí)用的JQuery代碼片段

    這篇文章主要介紹了12個(gè)超實(shí)用的JQuery代碼片段,代碼簡(jiǎn)潔,具有實(shí)用價(jià)值,感興趣的小伙伴們可以參考一下
    2015-11-11
  • jquery實(shí)現(xiàn)點(diǎn)擊彈出帶標(biāo)題欄的彈出層(從右上角飛入)效果

    jquery實(shí)現(xiàn)點(diǎn)擊彈出帶標(biāo)題欄的彈出層(從右上角飛入)效果

    這篇文章主要介紹了jquery實(shí)現(xiàn)點(diǎn)擊彈出帶標(biāo)題欄的彈出層(從右上角飛入)效果,涉及jQuery響應(yīng)鼠標(biāo)事件操作頁(yè)面元素動(dòng)畫效果的實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2015-09-09
  • jQuery 關(guān)于偽類選擇符的使用說明

    jQuery 關(guān)于偽類選擇符的使用說明

    jQuery選擇器的強(qiáng)大不僅在于選擇器支持基本的css選擇符,還支持很多CSS的偽類選擇符,甚至可以自定義選擇符
    2013-04-04
  • jquery實(shí)現(xiàn)圖片裁剪思路及實(shí)現(xiàn)

    jquery實(shí)現(xiàn)圖片裁剪思路及實(shí)現(xiàn)

    JS,jquery不能實(shí)現(xiàn)圖片的裁剪,只是顯示了一個(gè)假象,在服務(wù)器上用獲得的各個(gè)坐標(biāo)值,以及原始圖片,用JAVA進(jìn)行裁剪
    2013-08-08
  • jQuery制作圖片旋轉(zhuǎn)效果

    jQuery制作圖片旋轉(zhuǎn)效果

    本文主要介紹了jQuery制作圖片旋轉(zhuǎn)效果的示例代碼。具有很好的參考價(jià)值,下面跟著小編一起來看下吧
    2017-02-02
  • jQuery實(shí)現(xiàn)為圖片添加鏡頭放大效果的方法

    jQuery實(shí)現(xiàn)為圖片添加鏡頭放大效果的方法

    這篇文章主要介紹了jQuery實(shí)現(xiàn)為圖片添加鏡頭放大效果的方法,提供了四種放大鏡效果供大家選擇使用,并附有完整的源碼下載地址,需要的朋友可以參考下
    2015-06-06
  • jQuery基于Ajax方式提交表單功能示例

    jQuery基于Ajax方式提交表單功能示例

    這篇文章主要介紹了jQuery基于Ajax方式提交表單功能,結(jié)合實(shí)例形式分析了jQuery使用ajax方式提交表單的具體步驟與常見操作技巧,需要的朋友可以參考下
    2017-02-02
  • jquery實(shí)現(xiàn)點(diǎn)擊瀏覽器返回上一頁(yè)按鈕并能直接刷新

    jquery實(shí)現(xiàn)點(diǎn)擊瀏覽器返回上一頁(yè)按鈕并能直接刷新

    這篇文章主要介紹了jquery實(shí)現(xiàn)點(diǎn)擊瀏覽器返回上一頁(yè)按鈕并能直接刷新,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12

最新評(píng)論

新乡县| 洪江市| 遂昌县| 台中县| 农安县| 鄯善县| 古田县| 横山县| 得荣县| 苏尼特右旗| 资中县| 静乐县| 白城市| 乡城县| 庆阳市| 固阳县| 新巴尔虎右旗| 二连浩特市| 辉县市| 黄平县| 鲁甸县| 崇义县| 六安市| 香格里拉县| 海门市| 新建县| 启东市| 海淀区| 密云县| 新竹县| 安化县| 广汉市| 尚义县| 喀什市| 尤溪县| 无为县| 沙湾县| 郴州市| 闵行区| 银川市| 汝阳县|