精华内容
下载资源
问答
  • 分页原理及意义

    千次阅读 2018-06-13 19:01:06
    网站建设中网页排列方式一般分为两种:(1)单页面显示所有内容(2)单页面无法显示所有内容,此时就需要多分页来显示实现分页的解决方案有两种:(1)一次查询出数据库中的所有记录,然后在每页中显示指定的记录。...
    网站建设中网页排列方式一般分为两种:

    (1)单页面显示所有内容

    (2)单页面无法显示所有内容,此时就需要多分页来显示


    实现分页的解决方案有两种:

    (1)一次查询出数据库中的所有记录,然后在每页中显示指定的记录。

    (2)对数据库进行多次查询,每次只获得本页的数据并显示


    先如今网站建设中的数据都是海量的,若按方案1执行:无疑会加大服务器内存的负载,降低系统运行速度,因而大家都会使用方案2。


    如今,分页方式又有了新的改变。一种滚动加载功能十分火热,用户在浏览网页时,不需点击“下一页”按钮。

    这样做的优势和劣势都很明显:

    优势:

    (1)带来大量无目的流量

    (2)无阻断体验度提升

    劣势:

    (1)无明显地标,造成难以找回某个时间段的信息

    (2)...

    展开全文
  • 实验ppt
  • Web应用程序中资源分页不仅对性能很有帮助,而且从用户体验的...我们可以通过使用用户单击的页面的数字触发事件来实现此目的。 有几种可能的方法来实现API端点上的分页。对于这个例子,我们假设API告诉我们每个页面的结
  • ORACLE分页查询

    千次阅读 2018-06-27 11:22:45
    ORACLE分页查询 转自:ORACLE分页查询SQL语法——最高效的分页 无ORDER BY排序的写法。(效率最高) 经过测试,此方法成本最低,只嵌套一层,速度最快!即使查询的数据量再大,也几乎不受影响,速度依然! ...

    ORACLE分页查询

    转自:ORACLE分页查询SQL语法——最高效的分页

    无ORDER BY排序的写法。(效率最高)

    经过测试,此方法成本最低,只嵌套一层,速度最快!即使查询的数据量再大,也几乎不受影响,速度依然!

    SELECT *
      FROM (SELECT ROWNUM AS rowno, t.*
              FROM emp t
             WHERE hire_date BETWEEN TO_DATE ('20060501', 'yyyymmdd')
                                 AND TO_DATE ('20060731', 'yyyymmdd')
               AND ROWNUM <= 20) table_alias
     WHERE table_alias.rowno >= 10;

    有ORDER BY排序的写法。(效率最高)

    经过测试,此方法随着查询范围的扩大,速度也会越来越慢哦!

    SELECT *
      FROM (SELECT tt.*, ROWNUM AS rowno
              FROM (  SELECT t.*
                        FROM emp t
                       WHERE hire_date BETWEEN TO_DATE ('20060501', 'yyyymmdd')
                                           AND TO_DATE ('20060731', 'yyyymmdd')
                    ORDER BY create_time DESC, emp_no) tt
             WHERE ROWNUM <= 20) table_alias
     WHERE table_alias.rowno >= 10;

    无ORDER BY排序的写法。(建议使用方法1代替)

    此方法随着查询数据量的扩张,速度会越来越慢哦!

    SELECT *
      FROM (SELECT ROWNUM AS rowno, t.*
              FROM k_task t
             WHERE flight_date BETWEEN TO_DATE ('20060501', 'yyyymmdd')
                                   AND TO_DATE ('20060731', 'yyyymmdd')) table_alias
     WHERE table_alias.rowno <= 20 AND table_alias.rowno >= 10;
    --TABLE_ALIAS.ROWNO  between 10 and 100;

    有ORDER BY排序的写法.(建议使用方法2代替)

    此方法随着查询范围的扩大,速度会越来越慢哦!

    SELECT *
      FROM (SELECT tt.*, ROWNUM AS rowno
              FROM (  SELECT *
                        FROM k_task t
                       WHERE flight_date BETWEEN TO_DATE ('20060501', 'yyyymmdd')
                                             AND TO_DATE ('20060531', 'yyyymmdd')
                    ORDER BY fact_up_time, flight_no) tt) table_alias
     WHERE table_alias.rowno BETWEEN 10 AND 20;

    另类语法。(有ORDER BY写法)

    语法风格与传统的SQL语法不同,不方便阅读与理解,为规范与统一标准,不推荐使用。

    WITH partdata AS
         (
            SELECT ROWNUM AS rowno, tt.*
              FROM (  SELECT *
                        FROM k_task t
                       WHERE flight_date BETWEEN TO_DATE ('20060501', 'yyyymmdd')
                                             AND TO_DATE ('20060531', 'yyyymmdd')
                    ORDER BY fact_up_time, flight_no) tt
             WHERE ROWNUM <= 20)
    SELECT *
      FROM partdata
     WHERE rowno >= 10;

    另类语法 。(无ORDER BY写法)

    WITH partdata AS
         (
            SELECT ROWNUM AS rowno, t.*
              FROM k_task t
             WHERE flight_date BETWEEN TO_DATE ('20060501', 'yyyymmdd')
                                   AND TO_DATE ('20060531', 'yyyymmdd')
               AND ROWNUM <= 20)
    SELECT *
      FROM partdata
     WHERE rowno >= 10;

    yangtingkun分析:

    转自:yangtingkun的个人空间

    Oracle的分页查询语句基本上可以按照本文给出的格式来进行套用。

    分页查询格式:

    SELECT *
      FROM (SELECT a.*, ROWNUM rn
              FROM (SELECT *
                      FROM table_name) a
             WHERE ROWNUM <= 40)
     WHERE rn >= 21

    其中最内层的查询SELECT * FROM TABLE_NAME表示不进行翻页的原始查询语句。ROWNUM <= 40和RN >= 21控制分页查询的每页的范围。

    上面给出的这个分页查询语句,在大多数情况拥有较高的效率。分页的目的就是控制输出结果集大小,将结果尽快的返回。在上面的分页查询语句中,这种考虑主要体现在WHERE ROWNUM <= 40这句上。

    选择第21到40条记录存在两种方法,一种是上面例子中展示的在查询的第二层通过ROWNUM <= 40来控制最大值,在查询的最外层控制最小值。而另一种方式是去掉查询第二层的WHERE ROWNUM <= 40语句,在查询的最外层控制分页的最小值和最大值。这是,查询语句如下:

    SELECT *
      FROM (SELECT a.*, ROWNUM rn
              FROM (SELECT *
                      FROM table_name) a)
     WHERE rn BETWEEN 21 AND 40

    对比这两种写法,绝大多数的情况下,第一个查询的效率比第二个高得多。

    这是由于CBO优化模式下,Oracle可以将外层的查询条件推到内层查询中,以提高内层查询的执行效率。对于第一个查询语句,第二层的查询条件WHERE ROWNUM <= 40就可以被Oracle推入到内层查询中,这样Oracle查询的结果一旦超过了ROWNUM限制条件,就终止查询将结果返回了。

    而第二个查询语句,由于查询条件BETWEEN 21 AND 40是存在于查询的第三层,而Oracle无法将第三层的查询条件推到最内层(即使推到最内层也没有意义,因为最内层查询不知道RN代表什么)。因此,对于第二个查询语句,Oracle最内层返回给中间层的是所有满足条件的数据,而中间层返回给最外层的也是所有数据。数据的过滤在最外层完成,显然这个效率要比第一个查询低得多。

    上面分析的查询不仅仅是针对单表的简单查询,对于最内层查询是复杂的多表联合查询或最内层查询包含排序的情况一样有效。

    这里就不对包含排序的查询进行说明了,下一篇文章会通过例子来详细说明。

    下面简单讨论一下多表联合的情况。

    对于最常见的等值表连接查询,CBO一般可能会采用两种连接方式NESTED LOOP和HASH JOIN(MERGE JOIN效率比HASH JOIN效率低,一般CBO不会考虑)。在这里,由于使用了分页,因此指定了一个返回的最大记录数,NESTED LOOP在返回记录数超过最大值时可以马上停止并将结果返回给中间层,而HASH JOIN必须处理完所有结果集(MERGE JOIN也是)。那么在大部分的情况下,对于分页查询选择NESTED LOOP作为查询的连接方法具有较高的效率(分页查询的时候绝大部分的情况是查询前几页的数据,越靠后面的页数访问几率越小)。

    因此,如果不介意在系统中使用HINT的话,可以将分页的查询语句改写为:

    SELECT *
      FROM (SELECT a.*, ROWNUM rn
              FROM (SELECT *
                      FROM table_name) a
             WHERE ROWNUM <= 40)
     WHERE rn >= 21
    展开全文
  • 1) 分页目的是为了分段读取数据 2) 能够进行分页的数据一定是有序的, 哪怕他是依赖数据库存储顺序. (这一点换一种说法更容易理解: 当数据集没有发生变化时, 同样的输入, 多次执行, 得到的输出顺序保持不变) 3) ...
  • vue进行简单分页

    2020-05-23 12:15:30
    学习框架的目的是让我们开发更为便捷,相对于用原生或是jQuery来写分页,vue更为简单快捷。之前写过真分页(后端写好分页)的文章,现在来写假分页(前端自己写分页)的文章。废话不多说,直接上代码。 html代码: &...

    学习框架的目的是让我们开发更为便捷,相对于用原生或是jQuery来写分页,vue更为简单快捷。之前写过真分页(后端写好分页)的文章,现在来写假分页(前端自己写分页)的文章。废话不多说,直接上代码。
    html代码:

    <a class="prev" href="" @click.prevent="prev">&lt;&lt;</a>
    <span v-for="index in page" :class="newPage == index ?'current':''" @click.prevent="new1(index)">
    	{{index}}
    </span>
    <a class="next" href="" @click.prevent="next">&gt;&gt;</a>
    

    注:prev上一页,next下一页,span 就是显示的页数
    js代码:

    var app = new Vue({
      el: '#app',
      data: {
        exams: [],
        examAlls: [],
        
        page:"",//总页数
        pageNumber:1,//每页显示条数
        newPage:1,//当前所在页
      },
      mounted() {   //mounted 钩子函数  一般用来向后端发起请求,拿到数据后做一些业务处理。该函数在模版渲染完成后才被调用。DOM操作一般是在mounted钩子函数中进行。
      	//axios获取
          const that =this ;
          axios({
            url:'xxxxx/AppServe/ExamRingServlet?method=all',
            method:'post',
            headers:{//请求头设置为表单提交的请求头
              'Content-Type':"application/x-www-form-urlencoded"
            },
            /*data:params,*/
          })
          .then(function (data) {  //成功时的回调函数,data为后端返回的httprespons对象
            // do something   # 接上,对象内把数据也放在了data内,所以用data.data取值
            //console.log(data.data);
            that.examAlls = data.data;   //获取的数据
            that.page = Math.ceil(that.examAlls.length/that.pageNumber);  //计算总页数
            that.exams=that.examAlls.slice((that.newPage-1)*that.pageNumber,that.newPage*that.pageNumber);  //将获取到的数组进行切割,按照当前页数和每页条数
          })
          .catch(function (data) {  // 失败时的回调函数
            // do something
            //alert("获取数据失败")
            console.log(data)
          })
      },
      methods:{   //methods 事件方法执行  有一定的触发条件,如click等。
        /*分页*/
       	prev() {
    	   	if(this.newPage <= 1){   //判断是否是第一页
    	   		this.newPage = 1;
    	   		alert("前面没有了");
    	   	}else{
    	   		this.newPage--;
    	   		this.exams=this.examAlls.slice((this.newPage-1)*this.pageNumber,this.newPage*this.pageNumber); //将获取到的数组进行切割,按照当前页数和每页条数
    	   	}
       	},
       	next() {
    	   	if(this.newPage >= this.page){   //判断是否是最后一页
    	   		this.newPage = this.page;
    	   		alert("后面没有了");
    	   	}else{
    	   		this.newPage++;
    	   		this.exams=this.examAlls.slice((this.newPage-1)*this.pageNumber,this.newPage*this.pageNumber); //将获取到的数组进行切割,按照当前页数和每页条数
    	   	}
       	},
       	new1(index){   //点击中间的页数,跳转到对应页
       		this.newPage = index;     //让当前页等于点击的index
    		this.exams=this.examAlls.slice((this.newPage-1)*this.pageNumber,this.newPage*this.pageNumber); //将获取到的数组进行切割,按照当前页数和每页条数
       	},
      }
    })
    

    使用了layui,所以没写样式,请自行加上样式。因为本次开发中页数普遍少,暂时没有写页数省略号,后期补上。

    展开全文
  • CSS 分页导航

    千次阅读 2018-02-22 17:35:57
    分页导航对于搜索引擎或电子商务网站,常常将信息分页显示,这样可以减少页面大小,进而提高页面的加载速度。分页显示后,就需要通过分页导航来告诉用户要浏览的信息量,方便用户快速跳过一些不想看的信息,也便于...

    对于搜索引擎或电子商务网站,常常将信息分页显示,这样可以减少页面大小,进而提高页面的加载速度。分页显示后,就需要通过分页导航来告诉用户要浏览的信息量,方便用户快速跳过一些不想看的信息,也便于定位和查找。因此,分页导航也是很常见的、很重要的一种导航。

    实际上,分页导航的制作方法也很简单。分页导航一般包括上一页、页码、下一页三部分。首先,创建一个容器,来包裹分页导航的链接。如:

    
    
    1. <div class="page">
    2.     <a href="#" rel="pre">&lt; 上一页</a>
    3.     <a href="#" class="active">1</a><a href="#">5...</a>
    4.     <a href="#" rel="next">下一页 &gt;</a>
    5. </div>

    分页导航的所有链接也是在一行内显示,也要将容器的高度和行高设置为相同的值,来让容器中的内容垂直居中。

    
    
    1. .page {
    2.      height: 34px;
    3.      line-height: 34px;
    4. }

    接下来设置链接的样式。由于链接默认是行内元素,只有鼠标移动到链接文本上,才能激活链接。如果把链接的 display 属性设置为 block,在链接区域的任何位置都能激活链接。然而,在IE6下,链接的 display 属性设置为 block 却不凑效,需要设置为 inline-block 才行。再为链接设置一个灰色边框,并设置合适的内边距,让链接水平居中。再设置链接文本的样式,包括颜色、字体、文本大小,并去掉链接的默认下划线。对于数字,tahoma字体比较醒目,因此将字体设置为 tahoma, simsun,让数字使用tahoma字体,中文使用宋体。

    
    
    1. .page a {
    2.     display: inline-block;
    3.     border: 1px solid #ededed;
    4.     padding: 0 12px;
    5.     color: #3e3e3e;
    6.     font-size: 14px;
    7.     font-family: tahoma,simsun;
    8.     text-decoration: none;
    9. }

    再根据上下文的情况,设置链接悬停时的样式。这里将链接的悬停颜色设置为浅红色,同时,将悬停时的边框颜色也设置为同样的颜色:

    
    
    1. .page a:hover {
    2.     color: #f40;
    3.     border-color: #f40;
    4. }

    为了突显当前页码,需要定义类 .active 的样式,将它的背景颜色、边框颜色都设置为浅红色,字体颜色设置为白色。并且,在鼠标悬停时,它的样式也保持不变:

    
    
    1. .page .active,
    2. .page .active:hover {
    3.     color: #fff;
    4.     background: #f40;
    5.     border: solid 1px #f40;
    6. }

    至此,分页导航就基本制作完成了,效果如图 6‑10 所示:

    页码导航图6-10 页码导航

    事实上,分页导航的目的,是为了方便用户快速跳转到想要的页码。然而,分页导航中可显示的页码一般是有限的,用户不可能跳转到任意页码。

    一般的做法是,在分页导航中提供一个表单,表单中提供一个数字输入框和一个提交按钮,当用户输入数字,点击提交按钮后,便跳转到指定的页码。为了让方便用户输入,最好提供总页数和当前页码,并限制数字输入框的最大值和最小值。如:      

    
    
    1. <form>
    2.      <span class="text">共100页,到第</span>
    3.      <input type="number" value="2" min="1" max="100" />
    4.      <span class="text"></span>
    5.      <input type="submit" value="确定" />
    6. </form>

    为了让表单和页码在一行内显示,可以将表单元素的 display 属性设置为 inline,让它生成一个行内级框。

    
    
    1. .page form {
    2.     display: inline;
    3. }

    再来设置表单中 span 元素、数字输入框、提交按钮的样式。由于表单并非分页导航的主角,将其中的文本颜色稍淡一点,字体也少小一点。

    
    
    1. .page form span {
    2.     color: #999;
    3.     font-size: 13px;
    4. }
    5. .page form .text {
    6.     width: 35px;
    7.     height: 21px;
    8.     outline: none;
    9. }
    10. .page form .button {
    11.     width: 46px;
    12.     height: 24px;
    13.     cursor: pointer;
    14. }
    15. .page form .text,
    16. .page form .button {
    17.     text-align: center;
    18.     border-radius: 2px;
    19.     border: 1px solid #ededed;
    20.     background: #fff;
    21. }
    22. .page form .text:focus,
    23. .page form .button:hover {
    24.     color: #f40;
    25.     border-color: #f40;
    26. }

    运行结果如图 6‑11 所示:

    可跳转的页码导航图6-11 可跳转的页码导航

    这样一来,如果页码很多,用户就可以自由输入页码,跳转到任意合法的页码,这就方便多了。

    关于作者

    歪脖先生,十五年以上软件开发经验,酷爱Web开发,精通 HTML、CSS、JavaScript、jQuery、JSON、Python、Less、Bootstrap等,著有《HTML宝典》、《揭秘CSS》、《Less简明教程》、《JSON教程》、《Bootstrap2用户指南》、《Bootstrap3实用教程》,并全部在 GitHub 上开源。

    展开全文
  •  分页,是一种将所有数据分段展示给用户的技术.用户每次看到的不是全部数据,而是其中的一部分,如果在其中没有找到自习自己想要的内容,用户可以通过制定页码或是翻页的方式转换可见内容,直到找到自己想要的内容为止....
  • 分页和分段详解

    千次阅读 2019-11-28 19:41:37
    分页存储管理 1.基本思想 用户程序的地址空间被划分成若干固定大小的区域,称为“页”,相应地,内存空间分成若干个物理块,页和块的大小相等。可将用户程序的任一页放在内存的任一块中,实现了离散分配。 分页...
  • C# WinFrom分页源码

    2017-02-20 17:16:33
    Winform分页控件,分页控件+显示表格控件作为一个整体性的控件,不可分开,这样做的目的是可以实现更多的操作,集成更多丰富的特性,减少我们开发的工作量,这种情况虽然适用于大多数的情况,不过有时候需要更进一步...
  • SSM项目实战之十四:分页实现

    多人点赞 2019-07-19 16:29:07
    分页实现前言分页准备数据准备定义一个BasePage类用于封装分页数据前端...我们知道分页目的是分批次的响应用户的请求。分页有前端页面的分页栏和后端的分页获取数据源中的数据两部分组成。 分页准备 数据准备 在数...
  • 此工具的目的是实现网页数据分页显示完全脱离服务器,单纯使用js实现,现在功能还比较简单,只能单纯显示数据,有其他需求可以联系探讨。 工具例子使用ajax获取列表数据,当然其他形式也行,最后应该把数据转换成...
  • 这些说明将为您提供在本地计算机上运行并运行的项目的副本,以用于开发和测试目的。 有关如何在实时系统上部署项目的注释,请参阅部署。 先决条件 -Node.js是基于Chrome V8 JavaScript引擎构建JavaScript运行时。 ...
  • Spring Data 查询分页 -- 分页请求参数

    千次阅读 2018-11-04 12:02:45
    针对查询的分页请求和分页结果的返回,Spring 提供了相应的建模抽象并提供了相应的工具实现,这部分模型和工具包含在包spring-data-commons中,本文对这些模型和工具做一下梳理,方便在开发中使用 。 分页请求参数 ...
  • 1. 目的: 内存管理是操作系统的核心内容。本设计要求用高级语言编写模拟一个简单的内存管理程序。通过本实验可以加深对常见操作系统的内存管理模块的实现方法的理解。 2. 要求 (1)设计用户程序数组、PCB、页表...
  • 分页目的 前台分页 1、提高性能,在某些情况下,我们并不需要查询很大的数据量,在这种情况下,我们在程序中开辟一个内存(其实就是自...
  • MyBatis面试题(2020最新版)

    万次阅读 多人点赞 2019-09-24 16:40:33
    它主要的目的是根据调用的请求完成一次数据库操作。 基础支撑层:负责最基础的功能支撑,包括连接管理、事务管理、配置加载和缓存处理,这些都是共用的东西,将他们抽取出来作为最基础的组件。为上层的数据处理层...
  • ORACLE分页查询SQL语句(最有效的分页)

    万次阅读 多人点赞 2018-11-01 16:18:24
    分页目的就是控制输出结果集大小,将结果尽快的返回。在上面的分页查询语句中,这种考虑主要体现在WHERE ROWNUM 这句上。 选择第21到40条记录存在两种方法,一种是上面例子中展示的在查询的第二层通过ROWNUM 来...
  • 不管使用什么方法来实现,最终是需要根据系统进行统一的,不能张三使用这个插件来分页,李四使用那个插件来分页,王五则利用数据库函数来分页,一个系统五花八门,花里胡哨滴,这样是不行的,在一个系统中要么统一的...
  • 我们可以为了以下目的使用分页查询: 为了精确定位结果集的内容 为了节约内存 为了在有限的页面空间显示适度的数据。 如何实现分页查询 使用Oracle的EMP表 select * from ( select rownum rn, e.* from ( ...
  • 内存分页机制

    万次阅读 多人点赞 2018-09-27 18:08:33
    为什么要分页 在保护模式中,内存访问使用分段机制——即&amp;quot;段基址:段内偏移地址&amp;quot;的方式,为加强段内存的安全性和可管理性还引入了段描述符的概念对段内存加强管理。但仅仅这样还是不够的...
  • 如果执行一个地址转换所需的页表项或页目录项中Present标志被清0,那么分页单元就把该线性地址转换所需的页表项或页目录项中Present标志被清0,那么分页单元就把该线性地址存放在控制寄存器cr2中,并产生14号异常:...
  • 操作系统——分页和分段

    千次阅读 2019-12-08 16:42:14
    分页式存储管理,将用户程序的地址空间分成若干个固定大小的区域,称为页或者页面,这样可以将用户程序的页放入任一物理块中,而不用担心碎片的产生。 分段 分段式存储是为了满足用户要求而形成的一种存储管理.....
  • 分段分页

    2018-07-13 20:06:44
    分段分页 1、准备知识 地址转换:又称为重定位,即是把逻辑地址转换成绝对地址。分为: 静态重定位:在程序装入内存时进行地址转换(由装入程序执行,早期小型OS使用) 动态重定位:才CPU执行程序时进行地址转换...
  • java web手写实现分页功能

    千次阅读 2019-05-12 13:58:13
    现在很多流行的框架,都可以很快的把分页效果做出来,但是作为一名程序员你必须得知道手写分页的流程: 场景效果: 一、分页的思路 首先我们得知道写分页代码的思路,保持思路清晰,才能行云流水的去写代码,其实...
  • mybatis默认是支持分页的,内部通过创建可滚动的ResultSet(ResultSet.TYPE_FORWARD_ONLY)对结果集指针进行跳转以达到分页控制的目的。实际使用,需要传入RowBounds类型参数来告知mybatis做分页控制,RowBo...
  • Winform分页控件之纯分页显示处理

    千次阅读 2018-08-15 16:39:50
    在之前介绍的Winform分页控件中,都以分页控件+显示表格控件作为一个整体性的控件,不可分开,这样做的目的是可以实现更多的操作,集成更多丰富的特性,减少我们开发的工作量,这种情况虽然适用于大多数的情
  • oracle分页操作

    2011-02-15 16:09:24
    分页目的就是控制输出结果集大小,将结果尽快的返回。在上面的分页查询语句中,这种考虑主要体现在WHERE ROWNUM 这句上。 选择第21到40条记录存在两种方法,一种是上面例子中展示的在查询的第二层通过ROWNUM 来...
  • Oracle分页和MySql分页区别

    千次阅读 2019-04-02 17:32:54
    如果我们是通过JDBC的方式访问数据库,那么就有必要根据数据库类型采取不同的SQL分页语句,对于MySql数据库,我们可以采用limit语句进行分页,对于Oracle数据库,我们可以采用rownum的方式进行分页. 一、MySQL使用limit...
  • Vue整合Element-UI的分页组件实现分页

    千次阅读 2019-02-07 22:58:27
    VUE整合Element-UI的分页组件实现分页 前段时间在做一个系统后台,需要用表格加载显示后台数据项并分页显示。  分页可以通过不同的方式实现:  1、客户端分页  一次请求把数据全部从后端请求回来,在前端处理,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 74,933
精华内容 29,973
关键字:

分页的目的