前言介紹
前段時間,群里有位同學問起Ajax加載的問題,這個不屬于模板制作系列教程的內容,因此單獨再出一個使用技巧系列的教程。
該系列會寫一些PbootCMS在使用過程中碰到的一些問題,以及問題的解決方案。
大家也可以給我反饋一些問題,有空的時候我會選一些寫出來放在這個系列的教程里面。
Ajax無刷新加載內容,看起來高大上一點,但是對SEO是不太友好的,所以在使用的時候應該有個取舍。
由于PbootCMS的Api接口的存在,在PbootCMS上實現Ajax加載還是比較方便的。
使用方法
一、點擊更多按鈕加載內容
1、首先,添加一個按鈕用來觸發事件。
2、添加默認顯示的頁面內容(只是演示,結構我就隨意寫了)
????{pboot:list?scode=3?num=2} ????[list:title]????[list:description]????
????{/pboot:list}
3、js代碼部分,先引入jQuery
//先定義一些基本的內容 //Page就是第幾頁,由當前頁{page:current}?+?1,就是第二頁,parseInt確保該數值是Int類型。 var?Page?=?parseInt('{page:current}')?+?1; //Num就是每頁幾條信息,因為列表默認顯示的是2條,所以這里設為2,結合上面的第二頁實際上就是從第三條信息開始讀取。 var?Num??=?2; //定義內容的Dom位置,也就是讀取出來的內容要添加到哪個div里面去。 var?Dom??=?jQuery('.list'); //接下來寫在點擊按鈕('.more')的時候觸發事件 jQuery('#More').on('click',?function(){ ????//先構建Api的地址,具體的Api地址參數,請參考官方手冊。 ????var?url?=?'/api.php/list/3/page/'?+?Page?+?'/num/'?+?Num; ???? ????//開始Ajax提交請求,請求路徑就是Api接口 ????jQuery.ajax({ ????????//請求類型 ????????type:?'POST',? ????????//請求地址 ????????url:?url, ????????//返回數據類型 ????????dataType:?'json', ????????//請求參數,參考官方Api手冊 ????????data:?{ ????????????appid:?'{pboot:appid}', ????????????timestamp:?'{pboot:timestamp}', ????????????signature:?'{pboot:signature}', ????????}, ????????//請求成功 ????????success:?function(?response,?status?){ ????????????//定義Data變量為返回的數據 ????????????var?Data?=?response.data; ????????????if(?response.code?){ ????????????????//獲取數據成功,進行循環,value就是文章對象 ????????????????jQuery.each(?Data,?function(?index,?value?){ ????????????????????//將內容append到列表 ????????????????????var?Html?=?''?+?value.title?+?''?+?value.description?+?'
'; ????????????????????Dom.append(?Html?); ????????????????}); ????????????????//分頁+1,下次獲取下一頁的內容 ????????????????Page?+=?1; ????????????}?else?{ ????????????????//返回數據錯誤 ????????????????jQuery('#More').html(''?+?Data?+?''); ????????????} ????????}, ????????//請求失敗 ????????error:?function(?xhr,?status,?error?){ ????????????//返回數據異常 ????????????console.log(?error?); ????????} ????}) })
完成,點擊一下加載更多,頁面就會無刷新加載2篇文章了。
二、頁面滑動到底部加載更多文章
原理同上,只不過改變一下事件,原來是點擊按鈕觸發的,改成滾動監聽。
//使用jQuery的scroll()方法來監聽頁面滾動
jQuery(window).scroll(function(){
????//當前窗口和頁面頂部的距離
????var?WindowTop?=?jQuery(window).scrollTop();
????
????//可視窗口區域高度
????var?WindowHeight?=?jQuery(window).outerHeight();
????
????//頁面的高度
????var?DocHeight?=?jQuery(document).height();
????
????//定義一個開關
????var?load?=?true;
????
????//判斷:(窗口與頁面頂部距離?+?窗口高度)?>=?頁面的高度(也就是滾動到頁面底部的時候),并且開關是開啟狀態,執行ajax加載內容
????if(?(?WindowTop?+?WindowHeight?)?>=?DocHeight?&&?load?==?true?){
????
????????//請求地址
????????var?url?=?'/api.php/list/3/page/'?+?Page?+?'/num/'?+?Num;
????????
????????//設置開關狀態為關閉,防止重復加載
????????load?=?false;
????????
????????jQuery.ajax({
????????
????????????//部分代碼省略
????????????......
????????????
????????????success:?function(?response,?status?){
????????????????
????????????????var?Data?=?response.data;
????????????????
????????????????if(?response.code?){
????????????????????
????????????????????//獲取數據成功
????????????????????jQuery.each(?Data,?function(?index,?value?){
????????????????????????......
????????????????????});
????????????????????
????????????????????//設置開關狀態為開啟,進行下次加載
????????????????????load?==?true;
????????????????????
????????????????????//頁碼+1
????????????????????Page?+=?1;
????????????????????
????????????????}?else?{
????????????????????
????????????????????//返回數據錯誤
????????????????????jQuery('#More').html(''?+?Data?+?'');
????????????????????
????????????????}
????????????????
????????????},
????????????
????????????error:function(?xhr,?status,?error?){?......?}
????????????
????????})
????????
????}
????
})
總結:Ajax并沒有想象中的難度那么大,特別是有了PbootCMS的Api接口之后,獲取數據更容易,使用更方便。
最后更新于 2021-01-20 10:59:36 本文來源:https://www.pbhtml.com/250.html略有修改 相關知識點: PbootCMS ajax請求
- 1藍天采集器想爬去的頁面 需要點擊開始后才能出結果 怎么爬取
- 2藍天采集器希望能出官方教學視頻教程
- 3藍天采集器發布文章時候提示 未獲取到“作者賬號”:
- 4藍天采集器藍天采集器應該添加可以保存在本地txt格式
- 5163K網站系統七牛云加速域名開啟https教程
- 6藍天采集器安裝采集器不能進入數據庫安裝的哪一步
- 7藍天采集器v1.2碼云clone下來的,安裝完成后菜單是英文
- 8藍天采集器循環入庫的數據不到數據庫
- 9影視聽書系統蘋果cmsv10安裝操作教程
- 10藍天采集器XML采集問題
- 11163K網站系統提現和結算出錯需檢查的項目
- 12藍天采集器BUG反饋:標題排重無法正常使用
- 13蜀戎網絡溫馨小提示今天大雪“進補”的好時節到了
- 14狂野小說cms白色優美-手機模版(wap)和藍色簡約版手機模板免費分享
- 15163K網站系統短信通知配置教程(S版)
- 16藍天采集器有沒有附件同步到OSS服務器這么一說?
- 17163K網站系統X12(20191014)版本自動升級額外事項
- 18藍天采集器無法檢測到本地CMS
- 19藍天采集器起始網址無法通過POST方式批量獲取列表頁
- 20藍天采集器請問一下字段里面的某部分可以設置變量不
-
藍天采集器SEO操作教程
我們在使用藍天采集器采集數據的時候,內容直接同步到了我們的網站里面,是非常的方便。我們長期使用效果要利于seo操作的話就需要修改一下,操作教程如下:1、修改圖片本地保存路徑地址(默認是絕對路徑,建議修改為相對路徑)
-
163K網站系統結算/提現自動支付到···
本教程幫助您實現:用戶申請好店結算、分銷提現、余額提現經后臺審批后,自動從您的微信商戶企業零錢中打款支付到用戶的微信零錢中<溫馨提示:本教程適用于您已經擁有微信公眾號支付、支付寶開放平臺支付的權限;且全站已經部署HTTPS的前提下&g···
-
藍天采集器Wordpress文章遠程···
Wordpress文章遠程免登錄發布接口插件:skycaiji_wp.zip下載解壓后將skycaiji_wp文件夾復制到“wordpress目錄/wp-content/plugins”中 插件界面:
-
藍天采集器BUG反饋:標題排重無法正···
治標的辦法:使用網址排重,對需要再次采集的網址在采集記錄里刪除掉。
-
藍天采集器需要采集的字段,他們的cl···
我想取的是 所有<div class="listchannel"> 下的 <div class="imagechannel"> 里的 ···