通常我们在浏览新闻时发现有些新闻内容有分页功能,这些分页是怎么实现的呢?对于存在数据库里的文章内容,并没有没有分页概念或者功能,只能在写文章时通过一些技巧去实现。
目前分页多半是按照两种方式:
根据字节长度来实现分页
比如,文章有三千个字符,我每一页显示一千个字符,那么可以分三页。这种方式只能适用于纯文字的文章。否则如果有标签被拆开,就会影响页面美观了。比如你正好有一个标签<img src="img.jpg" />
这样一个标签,但是第一页的长度截取只截取到了<im,
剩下的g src="img.jpg" />
被分割到了下一页,其实这种方式也可以处理,即判断是不是标签被断开?如果断开就递归处理耦合就好,第二页的开头也需要这么处理,但比较麻烦。
但这种方式比较灵活,比如我每页显示五百个字符,只需要改动一个数值就好。
根据分页符实现分页
这种方式比较理想化,通常在编辑器里会适用js制作一个自定义的分页符按钮,点击分页符就可以在光标处插入分页符。分页符怎么定义都可以,只要不与html标签冲突就好,比如有些人会以<page>
做为分页符等等。当读取文章内容时,以分页符来分割实现分页。但这种分页方式在写入数据库之前就已经被分页符划分好,哪天你想把两页的文章分成三页,就得重新编辑文章调整分页符。
完美一点的解决方案
其实,也可以两种方案结合比较好,比如我分页是按照每页一千字,但又不希望标签被断开,可以在写文章时触发JS事件判断,耦合标签,灵活插入分页符即可。