搜索
当前所在位置: 首页>网站问题

pbootcms使用api接口实现Ajax无刷新加载更多文章

发布时间:2023-12-03 01:11:38 作者:超级管理员 点击:138 【 字体:大 中 小 】

实现方法

pbootcms自带了API接口,我们可以通过这个API接口http://IP/api.php/list/ 调取分页所需的数据。

我建议这种分页,不要一上来就全部使用Ajax获取数据,因为Ajax是不会被百度收录的。

我建议的做法是,在列表页先使用模板标签输出一些数据。例如:

<div class="newslist">
    <ul>
    {pboot:list num=6}
    <li>
        <a href="[list:link]">[list:title]</a>
    </li>
    {/pboot:list}
    </ul>
    <a href="javascript:;" class="loadmore">加载更多</a>
</div>

先读取6条数据,让搜索引擎最少能抓取到最新的6条文章。

然后再使用Ajax去调取剩余的新闻内容,实现点击加载更多的效果。

下面就是核心AJAX调取API数据部分代码

<script>
    $(function(){
        var Page = 1;
        // 每页展示12个
        var Num = 6;
        $(document).on('click','.loadmore',function(){
            // 页数
            Page++;
            $.ajax({
                type: 'POST',
                url: '/api.php/list/{sort:scode}/page/' + Page + '/num/' + Num + '/order/sorting',
                dataType: 'json',
                data: {
                    appid: '{pboot:appid}',
                    timestamp: '{pboot:timestamp}',
                    signature: '{pboot:signature}',
                },
                success: function( response, status ){
                    console.log(response);
                    var Data = response.data;
                    if( response.code ){
                        //获取数据成功
                        var Html = '';
                        jQuery.each( Data, function( index, value ){
                            //构建HTML
                            Html +=  '<li>';
                            Html +=  '    <a href="'+ value.contentlink +'">'+ value.title +'</a>';
                            Html +=  '</li>';
                        });
                        // 为了测试,延迟1秒加载
                        setTimeout(function(){
                            // 插入数据到页面,放到最后面
                            $('.newslist ul').append(Html);
                        },500);
                    }else{
                        $('.loadmore').slideUp();
                    }
                },
                error: function(xhr, type){
                    console.log('Ajax error!');
                }
            });
        });
    });
</script>

简单解释一下这个代码,从第二页开始读取,每次读取6条。为什么从第二页开始读取?因为前面我们已经在模板里输出6条数据啦。


注意事项

请注意在后台开启WebAPI,如下图。


其中API强制认证,可以按你的实际情况选择启用。


阅读全文
相关推荐

pbootcmsV3.2.5版本怎么设置网站缓存一天更新一次?

pbootcmsV3.2.5版本怎么设置网站缓存一天更新一次?
pbootcmsV3.2.5版本的网站有些数据需要经常更新,至少一天更新一次。我们设置缓存有效期为86400秒即可。...

pbootcms突然登录不了后台网页空白

pbootcms突然登录不了后台网页空白
pbootcms的网站后台突然登录不了网页空白,之前一直正常的。这种情况我们可以从以下两个方面进行排查。第一,使用虚拟主机的检查网站主机空间是否已经占用完。第二,检查网站是否被黑。...

HTML5人工智能科技公司网站模板

HTML5人工智能科技公司网站模板
HTML5人工智能科技公司网站模板是一款适合人工智能服务行业网站模板下载。提示:本模板调用到谷歌字体库,可能会出现页面打开比较缓慢。点我查看演示点我下载...

财税会计服务公司HTML5网站模板

财税会计服务公司HTML5网站模板
财税会计服务公司HTML5网站模板是一款适合从事会计服务行业公司宣传网站模板下载。提示:本模板调用到谷歌字体库,可能会出现页面打开比较缓慢。点我查看演示点我下载...

pbootcms模板常用php代码 可直接写在模板中

pbootcms模板常用php代码 可直接写在模板中
自用备忘 不做介绍<?php//获取一条定制标签名称为comtype的值,并用|分割循环输出常用于多个微信号码/多个电话等的输出$list=\core\basic\Db::table('ay_label')->field('value')->where("name='comtype'")->find();$list=explode('...

pbootcms个别文章添加成功后,前台打不开

pbootcms个别文章添加成功后,前台打不开
问题描述客户网站添加的几篇文章,后台修改编辑都没有任何问题,但是前台始终打不开,列表也不显示该文章。解决方法经过检查发现文章的发布时间不对,本地电脑时间为2022-09-11日,但是文章的发布时间是9月14日,也就是文章还未到发布时间,这种情况下,文章是打不开也不显示的。我们修改下发布时间即可。...

pbootcms调取友情连接列表代码

pbootcms调取友情连接列表代码
适用范围全站任意地方均可使用标签作用用于依次输出指定分组的友情链接模板代码{pboot:linkgid=*num=*}<ahref="[link:link]"title="[link:name]"><imgsrc="[link:logo]"></a>{/pboot:link}控制参数gid=* 分组,必填,用于控...

HTML5健康医疗服务机构网站模板

HTML5健康医疗服务机构网站模板
HTML5健康医疗服务机构网站模板是一款适合从事医疗服务行业宣传网站模板下载。提示:本模板调用到谷歌字体库,可能会出现页面打开比较缓慢。点我查看演示点我下载...

pbootcms 您访问的页面不存在,请核对后重试

pbootcms 您访问的页面不存在,请核对后重试
请先确认您的程序上传是否完整无误,如果程序上传完整无误,这种情况很大概率是没有配置伪静态规则。程序根目录rewrite文件中有对应的几种伪静态规则,请结合您的服务器或者是虚拟主机环境配置对应的伪静态规则即可。...

pbootcms定制标签保存不了太多文字 字数有限制的解决办法

pbootcms定制标签保存不了太多文字 字数有限制的解决办法
pbootcms定制标签默认只能保存500个字符,文字多了保存不了,自动被截断了。这个问题是数据库的字段设置问题我们直接修改数据库就好找到表ay_label将字段value的数据类型varchar改成mediumtext即可。此方法仅适用于mysql数据库。...
返回顶部