1. 首頁
  2. 新聞資訊
  3.  
  4. 建站經(jīng)驗
  5.  

Ajax 無刷新加載內(nèi)容

發(fā)布時間:2021-03-06 18:06:46 來源:
一、點擊更多按鈕加載內(nèi)容

1、首先,添加一個按鈕用來觸發(fā)事件。

<button class="more" type="submit">點擊加載更多</button>

2、添加默認(rèn)顯示的頁面內(nèi)容(只是演示,結(jié)構(gòu)我就隨意寫了)

<div class="list">
    {pt:list scode=3 num=2}
    <div class="title">[list:title]</div>
    <div class="desc">[list:description]</div>
    <hr>
    {/pt:list}
</div>

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

//先定義一些基本的內(nèi)容

//Page就是第幾頁,由當(dāng)前頁0 + 1,就是第二頁,parseInt確保該數(shù)值是Int類型。
var Page = parseInt('0') + 1;

//Num就是每頁幾條信息,因為列表默認(rèn)顯示的是2條,所以這里設(shè)為2,結(jié)合上面的第二頁實際上就是從第三條信息開始讀取。
var Num  = 2;

//定義內(nèi)容的Dom位置,也就是讀取出來的內(nèi)容要添加到哪個div里面去。
var Dom  = jQuery('.list');

//接下來寫在點擊按鈕('.more')的時候觸發(fā)事件
jQuery('#More').on('click', function(){

    //先構(gòu)建Api的地址,具體的Api地址參數(shù),請參考官方手冊。
    var url = '/api.php/list/3/page/' + Page + '/num/' + Num;
    
    //開始Ajax提交請求,請求路徑就是Api接口
    jQuery.ajax({
        //請求類型
        type: 'POST', 
        //請求地址
        url: url,
        //返回數(shù)據(jù)類型
        dataType: 'json',
        //請求參數(shù),參考官方Api手冊,在站內(nèi)使用以下參數(shù)會自動獲取
        data: {
            appid: '{pt:appid}',
            timestamp: '{pt:timestamp}',
            signature: '{pt:signature}',
        },
        //請求成功
        success: function( response, status ){
            //定義Data變量為返回的數(shù)據(jù)
            var Data = response.data;
            if( response.code ){
                //獲取數(shù)據(jù)成功,進(jìn)行循環(huán),value就是文章對象
                jQuery.each( Data, function( index, value ){
                    //將內(nèi)容append到列表
                    var Html = '<div class="title">' + value.title + '</div><div class="desc">' + value.description + '</div><hr>';
                    Dom.append( Html );
                });
                //分頁+1,下次獲取下一頁的內(nèi)容
                Page += 1;
            } else {
                //返回數(shù)據(jù)錯誤
                jQuery('#More').html('<span>' + Data + '</span>');
            }
        },
        //請求失敗
        error: function( xhr, status, error ){
            //返回數(shù)據(jù)異常
            console.log( error );
        }
    })
})

完成,點擊一下加載更多,頁面就會無刷新加載 2 篇文章了。

二、頁面滑動到底部加載更多文章

原理同上,只不過改變一下事件,原來是點擊按鈕觸發(fā)的,改成滾動監(jiān)聽。

//使用jQuery的scroll()方法來監(jiān)聽頁面滾動
jQuery(window).scroll(function(){

    //當(dāng)前窗口和頁面頂部的距離
    var WindowTop = jQuery(window).scrollTop();
    
    //可視窗口區(qū)域高度
    var WindowHeight = jQuery(window).outerHeight();
    
    //頁面的高度
    var DocHeight = jQuery(document).height();
    
    //定義一個開關(guān)
    var load = true;
    
    //判斷:(窗口與頁面頂部距離 + 窗口高度) >= 頁面的高度(也就是滾動到頁面底部的時候),并且開關(guān)是開啟狀態(tài),執(zhí)行ajax加載內(nèi)容
    if( ( WindowTop + WindowHeight ) >= DocHeight && load == true ){
    
        //請求地址
        var url = '/api.php/list/3/page/' + Page + '/num/' + Num;
        
        //設(shè)置開關(guān)狀態(tài)為關(guān)閉,防止重復(fù)加載
        load = false;
        
        jQuery.ajax({
        
            //部分代碼省略
            ......
            
            success: function( response, status ){
                
                var Data = response.data;
                
                if( response.code ){
                    
                    //獲取數(shù)據(jù)成功
                    jQuery.each( Data, function( index, value ){
                        ......
                    });
                    
                    //設(shè)置開關(guān)狀態(tài)為開啟,進(jìn)行下次加載
                    load == true;
                    
                    //頁碼+1
                    Page += 1;
                    
                } else {
                    
                    //返回數(shù)據(jù)錯誤
                    jQuery('#More').html('<span>' + Data + '</span>');
                    
                }
                
            },
            
            error:function( xhr, status, error ){ ...... }
            
        })
        
    }
    
})

總結(jié):Ajax 并沒有想象中的難度那么大,獲取數(shù)據(jù)更容易,使用更方便。

新聞資訊

 

服務(wù)項目

 

聯(lián)系我們

  • 咨詢電話:15808823723
  • 地址:云南昆明市盤龍區(qū)席子營141號501室
  • 業(yè)務(wù)咨詢:點擊這里給我發(fā)消息
  • 技術(shù)服務(wù):點擊這里給我發(fā)消息
  • 售后郵箱:646105345@qq.com
  • 技術(shù)郵箱:zcl@dcnop.com

 

微信公眾號

  • 客服:點擊這里給客服發(fā)消息

    技術(shù):點擊這里給技術(shù)發(fā)消息

    客戶服務(wù)熱線

    15808823723

    在線客服
    亚洲色无码专区一区,天天干天天在线,欧美一日本频道一区二区三区,久久99国产综合精品女同,欧美另类高清xxxxx,亚洲综合伦理一区,99国产精品私拍pans大尺度 ,亚洲欧洲一区二区三区在线 ,成人综合婷婷国产精品久久 ,伊人久久五月丁香综合中文亚洲
    天堂v亚洲国产ⅴ第一次| 99国产精品久久久久久久成人热| 东京热久久综合精品一区| 人人妻人人爽人人澡欧美一区| 在线无码免费看黄网站| 国产精品无码A∨麻豆| 无码视频国产精品一区二区| 亚洲人妻av无码| 国产爽妇网高潮在线观看| 日本在线A一区视频高清视频| 精品亚洲成AV人在线观看| 久久大香伊蕉在人线国产H| 18禁网站在线永久免费观看| 国产精品盗摄视频| 精品一区二区三人妻视频| 欧洲人与动牲交α欧美精品 | 亚洲精品手机在线| 曰韩精品无码一区二区视频| 亚洲AV日韩精品久久久久久A| 色欲色香天天天综合无码www| 狠狠色综合网| 自拍偷区亚洲综合激情| 无码国产精品一区二区vr| 91精品视频观看| 亚洲V在线激情| 日韩精品成人一区二区三区| 久久久久亚洲AV无码永不| 狼友av永久网站免费观看| 一区二区三区不卡在线观看| 国内精品国产三级国产av| 国产真实乱人视频| 婷婷五月深深久久精品| 自拍偷自拍亚洲精品第一页 | 高清不卡亚洲日韩AV在线| 成人午夜精品无码区久久| 国产在线无码精品电影网| 亚洲网站www| 久久久国产精品萌白酱免费| 成人午夜免费无码视频在线观看 | 五月天婷婷在线播放| 久久精品国产99久久美女|