分页优化这东西原来我也不太明白,不知道这东西还需要什么优化的,但是经理跟我说,搜索引擎好像是不能收录其他分页的列表数据,说这是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
}
相关推荐
6. **代码优化**:包括对文章页、右侧栏、分页条、字体大小选项等方面的代码优化,减少冗余,提高加载速度,同时保持良好的可读性。 7. **特色功能**:如添加音乐插件、摘要开合效果、文章排行等,既提升了用户体验...
Url重写技术可以使显示给用户的Url不同于实际的Url,Url重写技术被广泛应用于搜索引擎优化(SEO)、网站重组后重定向页面路径以及提供用户友好的Url等方面, AspNetPager支持Url重写技术使您可以自定义分页导航的Url...
1. 高性能:MvcPager控件通过服务器端和客户端混合分页技术,实现了高度优化的性能。它只加载当前页的数据,降低了服务器负载,提高了用户体验。 2. 自动化处理:MvcPager可以自动检测并处理请求中的分页参数,无需...
1. **SEO优化**:由于Ajax分页是异步加载的,对于搜索引擎爬虫来说,可能无法抓取到分页内容。可以使用服务器端渲染或Prerendering技术解决这个问题。 2. **浏览器兼容性**:虽然现代浏览器都支持XMLHttpRequest,但...
在实际开发中,还要考虑不同浏览器的兼容性,以及SEO优化等问题。例如,对于搜索引擎爬虫,可能需要提供一个包含所有数据的版本,以便它们能抓取完整的信息。 总结起来,Datalist分页技术是一种实用的网页开发技巧...
在实际应用中,你可能还需要考虑其他因素,如SEO友好性(使用URL参数或hash表示页码)、前端分页(使用Ajax异步加载数据)以及多语言支持等。自定义分页类应具有足够的灵活性以适应这些需求。 总结来说,TP5.1的...
5. **分页优化**: - **缓存**:利用缓存技术(如Redis)存储部分数据,减少数据库查询。 - **懒加载**:当用户滚动到页面底部时,动态加载下一页内容。 - **虚拟分页**:仅渲染视口内的数据,减少内存占用。 6....
5. **分页优化**: 虽然标题提到“写的比较匆忙,瞎写的”,但即使是简单的实现,也应考虑性能优化。例如,懒加载可以只加载可视区域内的数据,减少初始页面加载时间;同时,使用AJAX更新内容,可以在不刷新整个...
1. 分页参数:在URL中携带分页参数,以便于浏览器历史记录和书签功能,同时利于SEO。 2. 跳转页功能:提供直接输入页码跳转的选项,方便用户快速定位。 3. 自适应分页:根据设备屏幕大小,动态调整每页显示的条目...
在构建一个对搜索引擎友好的文章SEO分页类时,我们需要考虑的关键点是如何保持URL的一致性和内容稳定性,以便搜索引擎能够更好地理解和索引我们的网站。在上述的代码示例中,我们看到了一个Java类`MySEOPager`,它...
在IT行业中,分页是一种常见的...开发者应根据项目需求和预期用户群体选择合适的分页实现策略,并不断优化以达到最佳效果。在实际开发中,结合服务端分页(后端分页)和客户端分页,可以实现更高效、更友好的数据展示。
对于SEO优化来说AJAX分页及局部刷新分页,在百度,Google等搜索引擎收录来说十分不利,因为搜索引擎都是靠URL来记录的。 1、在工具栏选择项然后浏览控件DevPage Vs2005 Release 1.0 控件目录 2、修改WebConfig里的Sql...
在处理分页时,还要考虑SEO(搜索引擎优化)和无障碍访问(accessibility)。确保分页链接包含正确的`rel="prev"`和`rel="next"`属性,以便搜索引擎理解页面之间的关系。同时,为键盘用户和屏幕阅读器提供友好的导航...
**四、分页优化** 1. **缓存策略**:对于不常变化的数据,可以使用缓存来存储分页结果,减少数据库查询。 2. **索引优化**:对用于分页的字段建立索引,提高查询速度。 3. **预加载或预计算**:预先计算好几页的数据...
在实现过程中,你还需要考虑一些额外的因素,如SEO友好(对于爬虫来说,所有数据应该可被抓取)、响应式设计(分页应适应不同屏幕尺寸)以及用户体验(提供清晰的指示,如当前页数和总页数)。同时,对于大型项目,...
9. **SEO优化**:对于搜索引擎优化,分页应考虑使用HTML5的`rel="prev"`和`rel="next"`属性来指示分页链接的关系,帮助搜索引擎理解和索引多页内容。 10. **性能优化**:为了避免内存泄漏和提高性能,分页库需要...
15. **分页优化**:包括使用索引优化SQL查询,预计算总页数以避免每次计算,以及避免空页等问题。 16. **动态加载分页参数**:根据用户筛选条件动态调整每页数据量,提高数据展示的针对性。 17. **安全分页**:...
- **SEO优化**:搜索引擎可能不友好的处理分页,确保每个分页都有唯一的URL,并使用rel="prev"和rel="next"链接来指示分页关系。 - **缓存策略**:对于高流量的网站,可以考虑缓存分页后的结果,减少数据库查询和...
8. SEO优化:对于搜索引擎友好的分页,需要考虑如何让搜索引擎正确索引每个分页的内容,避免重复内容的问题。 9. 兼容性和性能优化:确保分页功能在各种浏览器和设备上表现一致,同时关注性能,如减少不必要的网络...
本教程重点围绕".netpage分页多功能实现及实例demo"展开,旨在帮助开发者掌握多种分页形式的实现方法,并注重SEO优化。 首先,我们关注的是"分页控件"。在ASP.NET中,有许多内置的分页控件,如SqlDataSource的...