`
阅读更多

分页优化这东西原来我也不太明白,不知道这东西还需要什么优化的,但是经理跟我说,搜索引擎好像是不能收录其他分页的列表数据,说这是SEO优化,让我将分页修改成安居客的方式。

先说说layer插件和安居客分页的方式不同:

1、首先layer的插件的样式如下:

<div id="layPage" align="center">

      <div name="laypage1.3" class="laypage_main laypageskin_molv" id="laypage_0">

     <span class="laypage_curr" style="background-color:#ff6600">1</span>

     <a href="javascript:;" data-page="2">2</a><a href="javascript:;" data-page="3">3</a>

     <a href="javascript:;" data-page="4">4</a><a href="javascript:;" data-page="5">5</a>

     <span>…</span>

     <a href="javascript:;" class="laypage_last" title="尾页" data-page="265">尾页</a>

     <a href="javascript:;" class="laypage_next" data-page="2">下一页</a></div>

</div>

1.1、安居客的分页样式如下:

    <div class="pagination">

          <span class="prev-page stat-disable">上一页</span>

          <span class="curr-page">1</span>

          <a href="https://sh.fang.anjuke.com/loupan/all/p2/">2</a>

          <a href="https://sh.fang.anjuke.com/loupan/all/p3/">3</a>

          <a href="https://sh.fang.anjuke.com/loupan/all/p4/">4</a>

          <a href="https://sh.fang.anjuke.com/loupan/all/p5/">5</a>

          <a href="https://sh.fang.anjuke.com/loupan/all/p6/">6</a>

          <a href="https://sh.fang.anjuke.com/loupan/all/p7/">7</a>

          <span class="ellipsis">...</span>

          <a href="https://sh.fang.anjuke.com/loupan/all/p2/" class="next-page next-link">下一页</a>

   </div>

    --------------------------------------------------------我是Controller方法---------------------------------------------------------

   page: (当前页,每页数量,总数);

   condition: 查询条件

   page.setPageContainer(PageUtil.layerPage(page,condition));

 

  --------------------------------------------------------我是Util 方法---------------------------------------------------------

package test.core.util;

 

import test.common.WebConstants;

 

public class PageUtil {

public static int getPageSize(int count, int numberOfPage) {

        int result = 0;

 

        // 记录条数小于0时

        if (count <= 0) {

            return 0;

        }

 

        // 计算页数

        result = count / numberOfPage;

 

        // 下一页还存在记录时(未满一页),页数加1

        if (count % numberOfPage != 0) {

            result++;

        }

        return result;

    }

 

public static int getOffset(int currentPage, int numberOfPage) {

 

        int offset = 0;

        if (currentPage > 0) {

            offset = (currentPage - 1) * numberOfPage;

        }

 

        return offset;

    }

 

/**

* 分页参数错误处理

* @param currentPage 当前页

* @param pageSize 每页个数

*/

public static void handleError(Integer currentPage, int pageSize) {

//若当前页参数为空或为0时,取第一页

if (currentPage == null || currentPage <= 0) {

currentPage = 1;

//若当前页大于总页数,取最大页

} else if (currentPage > pageSize) {

currentPage = pageSize;

}

}

/**

     * TODO(生成分页方法)    

     * @author  作者 E-mail <a href="mailto:15704600558@163.com"shangxy</a> 

     * @version 1.0 创建时间:2017年7月3日下午6:03:19

     * @param page (总数,每页个数,当前页,拼接城的分页)

     * @param condition 查询条件

     * @return  String

     */

    public static String layerPage(Page page,String condition){

    //分页总数

    int pageTotal = (int) Math.ceil(((double) page.getTotalRowSize()/(double) page.getPageRowSize()));

    //(这里要做判断,只有页数超过2页时才生成分页,调用分页方法)

    if(pageTotal<2){

    return "";

    }

    // url地址

    String web = WebConstants.CURRENT_WEB_CONTENT_PATH;

    String layer="<div class='laypage_main laypageskin_molv'>";

    /* 判断是否是第一页,如果不是那么就存在上一页和首页  */

    if(page.getCurrPageNum()!=1){ 

layer+="<a href="+web+condition+"lg"+(page.getCurrPageNum()-1)+">上一页</a>";

}

    //总数为1到5页

    if(1< pageTotal && pageTotal<6){

for (int i = 1; i <= pageTotal; i++) {

if(i==page.getCurrPageNum()){

layer +="<span class='laypage_curr' style='background-color:#ff6600'>"+i+"</span>";

}else{

layer+="<a href="+web+condition+"lg"+i+">"+i+"</a>";

}

}

    }else{ /* 分页总数大于6时处理 */ 

    if(page.getCurrPageNum()>3){ /* 判断当前页是否是前三页以外,如果是则存在首页  */

layer +="<a href="+web+condition+"lg1"+" class='laypage_first' title='首页'>首页</a>";

}

    /* 判断当前的位置,是否在末尾3页 和首页前三页 之间  */

    if(page.getCurrPageNum()>3 && (2<(pageTotal - page.getCurrPageNum()))){

    layer+="<span>…</span>";

    for (int i = (page.getCurrPageNum()-2); i <= (page.getCurrPageNum()+2); i++) {

    if(i==page.getCurrPageNum()){

    layer +="<span class='laypage_curr' style='background-color:#ff6600'>"+i+"</span>";

    }else{

    layer+="<a href="+web+condition+"lg"+i+">"+i+"</a>";

    }

    }

    layer+="<span>…</span>";

    }else if ((pageTotal - page.getCurrPageNum())<=2) { /* 判断当前的位置,是否在末尾三页之内 */

    layer+="<span>…</span>";

    for (int i = (pageTotal-4); i <= pageTotal; i++) {

    if(i==page.getCurrPageNum()){

    layer +="<span class='laypage_curr' style='background-color:#ff6600'>"+i+"</span>";

    }else{

    layer+="<a href="+web+condition+"lg"+i+">"+i+"</a>";

    }

    }

}else {

/* 判断当前的位置在首页5页之内 */

    for (int i = 1; i <= 5; i++) {

    if(i==page.getCurrPageNum()){

    layer +="<span class='laypage_curr' style='background-color:#ff6600'>"+i+"</span>";

    }else{

    layer+="<a href="+web+condition+"lg"+i+">"+i+"</a>";

    }

    }

    layer+="<span>…</span>";

}

    /* 判断是最后三页以外,以外存在尾页  */

    if(2<(pageTotal - page.getCurrPageNum())){

    layer +="<a href="+web+condition+"lg"+pageTotal+" class='laypage_last' title='尾页' >尾页</a>";

    }

    }

    /* 判断是否是最后一页,如果不是那么就存在下一页和尾页  */

if(page.getCurrPageNum()!=pageTotal){

layer +="<a href="+web+condition+"lg"+(page.getCurrPageNum()+1)+">下一页</a>";

}

    return layer;

    }

}

 

 --------------------------------------------------------我是page JSP的方法---------------------------------------------------------

    <!-- page分页容器 -->

    <div align="center" class="page">${page.pageContainer}</div>

 

--------------------------------------------------------我是static CSS的方法---------------------------------------------------------

 

.laypage_main a, .laypage_main input, .laypage_main span {

height: 26px;

line-height: 26px

}

 

.laypage_main button, .laypage_main input, .laypageskin_default a {

border: 1px solid #ccc;

background-color: #fff

}

 

.laypage_main {

font-size: 0;

clear: both;

color: #666

}

 

.laypage_main * {

display: inline-block;

vertical-align: top;

font-size: 12px

}

 

.laypage_main a {

text-decoration: none;

color: #666

}

 

.laypage_main a, .laypage_main span {

margin: 0 3px 6px;

padding: 0 10px

}

 

.laypage_main input {

width: 40px;

margin: 0 5px;

padding: 0 5px

}

 

.laypage_main button {

height: 28px;

line-height: 28px;

margin-left: 5px;

padding: 0 10px;

color: #666

}

 

.laypageskin_default span {

height: 28px;

line-height: 28px;

color: #999

}

 

.laypageskin_default .laypage_curr {

font-weight: 700;

color: #666

}

 

.laypageskin_molv a, .laypageskin_molv span {

padding: 0 12px;

border-radius: 2px

}

 

.laypageskin_molv a {

background-color: #f1eff0

}

 

.laypageskin_molv .laypage_curr {

background-color: #00AA91;

color: #fff

}

 

.laypageskin_molv input {

height: 24px;

line-height: 24px

}

 

.laypageskin_molv button {

height: 26px;

line-height: 26px

}

 

.laypageskin_yahei {

color: #333

}

 

.laypageskin_yahei a, .laypageskin_yahei span {

padding: 0 13px;

border-radius: 2px;

color: #333

}

 

.laypageskin_yahei .laypage_curr {

background-color: #333;

color: #fff

}

 

.laypageskin_flow {

text-align: center

}

 

.laypageskin_flow .page_nomore {

color: #999

}

 

分享到:
| JVM
评论

相关推荐

    Zblog模板SEO优化汇总终极版-xyklj-快乐界博客.doc

    6. **代码优化**:包括对文章页、右侧栏、分页条、字体大小选项等方面的代码优化,减少冗余,提高加载速度,同时保持良好的可读性。 7. **特色功能**:如添加音乐插件、摘要开合效果、文章排行等,既提升了用户体验...

    能用漂亮分页控件及Demo源码

    Url重写技术可以使显示给用户的Url不同于实际的Url,Url重写技术被广泛应用于搜索引擎优化(SEO)、网站重组后重定向页面路径以及提供用户友好的Url等方面, AspNetPager支持Url重写技术使您可以自定义分页导航的Url...

    MvcPager分页控件,支持MVC分页

    1. 高性能:MvcPager控件通过服务器端和客户端混合分页技术,实现了高度优化的性能。它只加载当前页的数据,降低了服务器负载,提高了用户体验。 2. 自动化处理:MvcPager可以自动检测并处理请求中的分页参数,无需...

    ajax 分页 ajax分页

    1. **SEO优化**:由于Ajax分页是异步加载的,对于搜索引擎爬虫来说,可能无法抓取到分页内容。可以使用服务器端渲染或Prerendering技术解决这个问题。 2. **浏览器兼容性**:虽然现代浏览器都支持XMLHttpRequest,但...

    datalist分页技术及实现

    在实际开发中,还要考虑不同浏览器的兼容性,以及SEO优化等问题。例如,对于搜索引擎爬虫,可能需要提供一个包含所有数据的版本,以便它们能抓取完整的信息。 总结起来,Datalist分页技术是一种实用的网页开发技巧...

    TP5.1扩展分页、数组分页类.zip

    在实际应用中,你可能还需要考虑其他因素,如SEO友好性(使用URL参数或hash表示页码)、前端分页(使用Ajax异步加载数据)以及多语言支持等。自定义分页类应具有足够的灵活性以适应这些需求。 总结来说,TP5.1的...

    分页源码

    5. **分页优化**: - **缓存**:利用缓存技术(如Redis)存储部分数据,减少数据库查询。 - **懒加载**:当用户滚动到页面底部时,动态加载下一页内容。 - **虚拟分页**:仅渲染视口内的数据,减少内存占用。 6....

    简单的静态分页

    5. **分页优化**: 虽然标题提到“写的比较匆忙,瞎写的”,但即使是简单的实现,也应考虑性能优化。例如,懒加载可以只加载可视区域内的数据,减少初始页面加载时间;同时,使用AJAX更新内容,可以在不刷新整个...

    asp.net文章分页

    1. 分页参数:在URL中携带分页参数,以便于浏览器历史记录和书签功能,同时利于SEO。 2. 跳转页功能:提供直接输入页码跳转的选项,方便用户快速定位。 3. 自适应分页:根据设备屏幕大小,动态调整每页显示的条目...

    写一个对搜索引擎友好的文章SEO分页类

    在构建一个对搜索引擎友好的文章SEO分页类时,我们需要考虑的关键点是如何保持URL的一致性和内容稳定性,以便搜索引擎能够更好地理解和索引我们的网站。在上述的代码示例中,我们看到了一个Java类`MySEOPager`,它...

    客户端玩分页

    在IT行业中,分页是一种常见的...开发者应根据项目需求和预期用户群体选择合适的分页实现策略,并不断优化以达到最佳效果。在实际开发中,结合服务端分页(后端分页)和客户端分页,可以实现更高效、更友好的数据展示。

    漂亮好用的分页控件源码

    对于SEO优化来说AJAX分页及局部刷新分页,在百度,Google等搜索引擎收录来说十分不利,因为搜索引擎都是靠URL来记录的。 1、在工具栏选择项然后浏览控件DevPage Vs2005 Release 1.0 控件目录 2、修改WebConfig里的Sql...

    jquery 文章分页jQuery分页的解决图片和内容分页显示

    在处理分页时,还要考虑SEO(搜索引擎优化)和无障碍访问(accessibility)。确保分页链接包含正确的`rel="prev"`和`rel="next"`属性,以便搜索引擎理解页面之间的关系。同时,为键盘用户和屏幕阅读器提供友好的导航...

    web分页查询

    **四、分页优化** 1. **缓存策略**:对于不常变化的数据,可以使用缓存来存储分页结果,减少数据库查询。 2. **索引优化**:对用于分页的字段建立索引,提高查询速度。 3. **预加载或预计算**:预先计算好几页的数据...

    jquery分页 纯前端分页 修改部分bug,利于调用

    在实现过程中,你还需要考虑一些额外的因素,如SEO友好(对于爬虫来说,所有数据应该可被抓取)、响应式设计(分页应适应不同屏幕尺寸)以及用户体验(提供清晰的指示,如当前页数和总页数)。同时,对于大型项目,...

    多种分页效果的实现

    9. **SEO优化**:对于搜索引擎优化,分页应考虑使用HTML5的`rel="prev"`和`rel="next"`属性来指示分页链接的关系,帮助搜索引擎理解和索引多页内容。 10. **性能优化**:为了避免内存泄漏和提高性能,分页库需要...

    JSP精心收藏的21种分页方法

    15. **分页优化**:包括使用索引优化SQL查询,预计算总页数以避免每次计算,以及避免空页等问题。 16. **动态加载分页参数**:根据用户筛选条件动态调整每页数据量,提高数据展示的针对性。 17. **安全分页**:...

    文章正文分页实现源码

    - **SEO优化**:搜索引擎可能不友好的处理分页,确保每个分页都有唯一的URL,并使用rel="prev"和rel="next"链接来指示分页关系。 - **缓存策略**:对于高流量的网站,可以考虑缓存分页后的结果,减少数据库查询和...

    电脑版分页.rar

    8. SEO优化:对于搜索引擎友好的分页,需要考虑如何让搜索引擎正确索引每个分页的内容,避免重复内容的问题。 9. 兼容性和性能优化:确保分页功能在各种浏览器和设备上表现一致,同时关注性能,如减少不必要的网络...

    .netpage分页多功能实现及实例demo

    本教程重点围绕".netpage分页多功能实现及实例demo"展开,旨在帮助开发者掌握多种分页形式的实现方法,并注重SEO优化。 首先,我们关注的是"分页控件"。在ASP.NET中,有许多内置的分页控件,如SqlDataSource的...

Global site tag (gtag.js) - Google Analytics