首頁  >  文章  >  web前端  >  Ajax怎麼實現點擊時不斷開資料載入列表

Ajax怎麼實現點擊時不斷開資料載入列表

php中世界最好的语言
php中世界最好的语言原創
2018-04-04 10:14:001332瀏覽

這次給大家帶來Ajax怎麼實現點擊時不斷開數據加載列表,Ajax實現點擊時不斷開數據加載列表的注意事項有哪些,下面就是實戰案例,一起來看一下。

Ajax簡介

AJAX即「Asynchronous Javascript And XML」(非同步JavaScript和XML),指一種創建互動式網頁應用程式的網頁開發技術。

AJAX = 非同步 JavaScript和XML(標準通用標記語言的子集)。

AJAX 是一種用於建立快速動態網頁的技術。

透過在後台與伺服器進行少量資料交換,AJAX 可以使網頁實現非同步更新。這意味著可以在不重新載入整個網頁的情況下,對網頁的某個部分進行更新。

傳統的網頁(不使用 AJAX)如果需要更新內容,必須重載整個網頁頁面。

實現每種功能都有各種各樣的方法和思路,今天總結我的一個小小的載入功能。

載入很常見,每位手機控都對她再熟不過了。每次我們在刷微博、朋友圈、空間······,滑到一定的量時,會提醒上滑加載更多,這是一種加載方式;還有一種就是點擊加載,點擊加載一定的量,再點擊,再加載一定的量(說了一大堆廢話)。

現在我們就來談談ajax逐一載入數據,類似這樣的數據列表。

先顯示10個,再點選載入更多,再顯示10個·····

一、思路

一般使用ajax加載的話,一下會加載全部數據,這次要控制量的加載,那就要用到判斷,判斷加載到10個停止加載,後面透過點擊按鈕,在接著加載的10個後面繼續加載。

要想控制只載入10個怎麼辦捏。不能透過遍歷的i 來判斷10個,因為載入完10個後後面還要加載,這樣下一個10個就不好判斷了,所以需要定義一個新的變量,來計算加載的個數,

可以這樣寫:

var ci = 0;
for(var i = 0; i < data.list.length; i++){
  ci++; 
  if(ci> 10){
  break;
  }
}

然後需要再載入10個,再調用這個方法,所以這個方法需要宣告一個函數名,下次需要用的時候在調用,如果需要傳參也可以。現在還有個問題,第一次進來載入完10個後,需要再載入前10個數據接著後面的json數據,怎麼辦呢? ? ?

沒關係,可以透過呼叫上面定義好的函數,然後傳參。參數怎麼計算呢? ? ?

先想一個參數和什麼有關係,和 i 有關係,i 和什麼有關係呢?或說什麼可以影響 i 呢?

好像只有它的值才會影響(那不是廢話嗎),這樣的話它的值就不能是一個不變的數了,只能是一個變量,那麼變量從哪裡來呢? ? ?

別忘了我們還有一個點擊事件,先定義一個點擊次數的變數var clickNum = 0,因為每次載入時10個,所以i 的值應該是:

i = 10*clickNum,這是每次載入第一個資料的索引值。這樣我們就解決了上面那個問題。

此時還有問題要解決,當資料全部點擊載入完後,點選按鈕需要隱藏,那怎麼計算資料載入完了呢? ? ?

我們可以透過點擊的次數clickNum 來計算,因為每次載入10個,所以可以計算出總共需要載入的次數parseInt((data.list.length)/10)+1,為什麼載入的次數要加1 呢?

因為parseInt()是取整,例如21/10=2,但實際需要載入3 次,所以要加1 ,巧的是我們第一次載入不用點擊,瀏覽器已載入進來就讀取了10個數據,

所以clickNum = parseInt((data.list.length)/10),當clickNum == parseInt((data.list.length)/10) 時隱藏點擊​​按鈕。

思路基本上清晰了

二、实现功能

HTML:

<dl id="incomeNum">
  <dt><em></em>每日分配收益</dt>
</dl>
<p class="jiaZai_more">点击查看更多</p>

css:

此处省略css。

js:

function nwalletProfit(num, cNum){
$.ajax({
type: "post",
async: true,
url: url,
dataType: "json",
success: function (data) {
if (data.list.length > 0){
var i = num;
var ci= 0;
var x = parseInt((data.profit_list.length)/10);//x为每10个一组的组数
if(cNum >= x){
$(".jiaZai_more").hide(); //当点击更多的次数 ≥ 组数时,隐藏按钮
}
for(; i < data.profit_list.length; i++){
var htmltxt = "";
ci++; 
var date = data.profit_list[i].date;
var year = date.substring(0, 4);
var month = date.substring(4, 6);
var day = date.substring(6);
date = year+&#39;年&#39;+month+&#39;月&#39;+day+&#39;日&#39;;
htmltxt += &#39;<dd>';
htmltxt += '<h5 class="date">'+date+'</h5>';
htmltxt += '<p class="income">'+data.list[i].profit+'%</p>';
if(ci> 10){
break;
}
$("#incomeNum").append(htmltxt);
}
}
},
error: function (e, d, c) {
console.log(d)
}
});
}
nwalletProfit(0);
var clickNum = 0; //点击的次数
$(".jiaZai_more").on('click', function(event) {
event.preventDefault();
clickNum++;
var iNum = 10*clickNum; //每次点击开始加载的第一个索引值
nwalletProfit(iNum, clickNum);
});

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

推荐阅读:

Ajax怎么实现智能提示关联词搜索

jQuery.ajaxWebService请求WebMethod处理Ajax

以上是Ajax怎麼實現點擊時不斷開資料載入列表的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn