您好,欢迎来到菜鸟吧源码网(www.cniao8.com)本站只做精品网站源码!
  • 首 页
  • 菜鸟云
  • 公告:本站资源均来源于互联网及会员投稿发布,所有资源仅供学习参考研究使用,请勿商用或其它非法用途,商用请购买正版,否则产生一切后果由用户自行承担!谢谢!

     

    当前位置:主页 > 站长学堂 > pboot教程 >
    PbootCms制作ajax无刷新加载列表内容
    时间:2022-03-15 13:51 作者:菜鸟吧 浏览:收藏 挑错 打印

    前言

    前段时间,群里有位同学问起Ajax加载的问题,这个不属于模板制作系列教程的内容,因此单独再出一个使用技巧系列的教程。

    该系列会写一些pbootcms模板在使用过程中碰到的一些问题,以及问题的解决方案。

    大家也可以给我反馈一些问题,有空的时候我会选一些写出来放在这个系列的教程里面。

    友情提示

    Ajax无刷新加载内容,看起来高大上一点,但是对SEO是不太友好的,所以在使用的时候应该有个取舍。

    由于PbootCMS的Api接口的存在,在PbootCMS上实现Ajax加载还是比较方便的。

    实现步骤

    一、点击更多按钮加载内容

    1、首先,添加一个按钮用来触发事件。

    1<button class="more"type="submit">点击加载更多</button>

    2、添加默认显示的页面内容(只是演示,结构我就随意写了)

    1<div class="list">
    2{*pboot:list scode=3* num=2}
    3<div class="title">[*list:title*]</div>
    4<div class="desc">[*list:description*] </div>
    5<hr>
    6{*/pboot:list*}
    7</div>

    3、js代码部分,先引入jQuery

    01//先定义一些基本的内容
    02
    03//Page就是第几页,由当前页{page:current} + 1,就是第二页,parseInt确保该数值是Int类型。
    04var Page = parseInt('{page:current}') + 1;
    05
    06//Num就是每页几条信息,因为列表默认显示的是2条,所以这里设为2,结合上面的第二页实际上就是从第三条信息开始读取。
    07var Num  = 2;
    08
    09//定义内容的Dom位置,也就是读取出来的内容要添加到哪个div里面去。
    10var Dom  = jQuery('.list');
    11
    12//接下来写在点击按钮('.more')的时候触发事件
    13jQuery('#More').on('click', function(){
    14
    15//先构建Api的地址,具体的Api地址参数,请参考官方手册。
    16var url = '/api.php/list/3/page/'+ Page + '/num/'+ Num;
    17
    18//开始Ajax提交请求,请求路径就是Api接口
    19jQuery.ajax({
    20//请求类型
    21type: 'POST',
    22//请求地址
    23url: url,
    24//返回数据类型
    25dataType: 'json',
    26//请求参数,参考官方Api手册
    27data: {
    28appid: '{*pboot:appid*}',
    29timestamp: '{*pboot:timestamp*}',
    30signature: '{*pboot:signature*}',
    31},
    32//请求成功
    33success: function( response, status ){
    34//定义Data变量为返回的数据
    35var Data = response.data;
    36if( response.code ){
    37//获取数据成功,进行循环,value就是文章对象
    38jQuery.each( Data, function( index, value ){
    39//将内容append到列表
    40var Html = '<div class="title">'+ value.title + '</div><div class="desc">'+ value.description + '</div><hr>';
    41Dom.append( Html );
    42});
    43//分页+1,下次获取下一页的内容
    44Page += 1;
    45} else{
    46//返回数据错误
    47jQuery('#More').html('<span>'+ Data + '</span>');
    48}
    49},
    50//请求失败
    51error: function( xhr, status, error ){
    52//返回数据异常
    53console.log( error );
    54}
    55})
    56})

    完成,点击一下加载更多,页面就会无刷新加载2篇文章了。


    二、页面滑动到底部加载更多文章

    原理同上,只不过改变一下事件,原来是点击按钮触发的,改成滚动监听。

    01//使用jQuery的scroll()方法来监听页面滚动
    02jQuery(window).scroll(function(){
    03
    04//当前窗口和页面顶部的距离
    05var WindowTop = jQuery(window).scrollTop();
    06
    07//可视窗口区域高度
    08var WindowHeight = jQuery(window).outerHeight();
    09
    10//页面的高度
    11var DocHeight = jQuery(document).height();
    12
    13//定义一个开关
    14var load = true;
    15
    16//判断:(窗口与页面顶部距离 + 窗口高度) >= 页面的高度(也就是滚动到页面底部的时候),并且开关是开启状态,执行ajax加载内容
    17if( ( WindowTop + WindowHeight ) >= DocHeight && load == true){
    18
    19//请求地址
    20var url = '/api.php/list/3/page/'+ Page + '/num/'+ Num;
    21
    22//设置开关状态为关闭,防止重复加载
    23load = false;
    24
    25jQuery.ajax({
    26
    27//部分代码省略
    28......
    29
    30success: function( response, status ){
    31
    32var Data = response.data;
    33
    34if( response.code ){
    35
    36//获取数据成功
    37jQuery.each( Data, function( index, value ){
    38......
    39});
    40
    41//设置开关状态为开启,进行下次加载
    42load == true;
    43
    44//页码+1
    45Page += 1;
    46
    47} else{
    48
    49//返回数据错误
    50jQuery('#More').html('<span>'+ Data + '</span>');
    51
    52}
    53
    54},
    55
    56error:function( xhr, status, error ){ ...... }
    57
    58})
    59
    60}
    61
    62})

    总结

    Ajax并没有想象中的难度那么大,特别是有了PbootCMS的Api接口之后,获取数据更容易,使用更方便。

    郑重声明:
    本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,不存在任何商业目的与商业用途。 若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。
    我们不承担任何技术及版权问题,且不对任何资源负法律责任。
    如无法下载,联系站长索要。
    如有侵犯您的版权,请给我们来信:admin@cniao8.com,我们尽快处理。

    PbootCMS获取结果页面的搜索keyword值和tag值PbootCMS获取结果页面的搜索keyword值
    pbootcms如何设置网站xml地图pbootcms如何设置网站xml地图
    pbootcms后台出现"登录失败:登录失败次数太多已被锁定,请600s重试!" 情况,怎么办?pbootcms后台出现"登录失败:登录失败