頁面上常常須要不少的數據來展現,這時候咱們不可能在一個頁面上顯示所有的內容,這個時候就須要引入翻頁了。爲了使每次翻頁頁面都不刷新,咱們要使用ajax來進行異步的數據加載。html
對ajax還不太熟悉的能夠查看這裏,下面是我經常使用的方式,把ajax寫在工具類中,而後去調用使用。前端
function ajax(url_,type_,data_,callback){ $.ajax({ type : type_, // 請求方式。 url : url_, // 發送請求的地址。 dataType : 'jsonp', // 預期服務器返回的數據類型。 data : data_, // 發送到服務器的數據。 success : function(json){ callback(json); }, error : function(json){ callback(json); } }) } // 使用 ajax(url,"post",{ data : data_ },function(json){ console.log(json) })
1.這個插件的具體參數使用能夠查看這裏,
2.我使用的是Bootstrap Pagination,配合項目使用的Bootstrap前端框架使用很是方便。jquery
首先要先說下,對應的後臺接口:ajax
// 數據請求接口 GET /v1/list/?filters=<filters>&index=<index>&limit=<limit>&order=<order>&sortBy=<sortBy> filters //搜索條件 index //第幾頁 limit //一頁顯示幾個 order //排序方式 sortBy //排序原則
分頁請求方式流程json
請求後臺數據接口獲取初始化數據前端框架
分析數據看是否須要構建分頁。服務器
推薦使用handlebars等模板工具來構建頁面。app
//tool.js tool.getList = { apple : function(filters,index,limit,callback){ ajax(url,'get',{ filters : filters, index : index, limit : limit, order : 'desc', sortBy : 'number' },function(json){ callback(json); }) } } //appleList.js function appleList(index,filters){ tool.getList.apple(filters,index,6,function(json){ if(json.succeed && json.data['appleList']){ var count = json.data['count'], list = json.data['appleList']; pagination(index,count,list); }else{ //無數據 } }) } function pagination(index,count,list){ if(index = 0){ var num = Math.ceil(count/ 6); //計算頁數 $("#listPagination").bs_pagination({ currentPage: 1, showGoToPage: false, showRowsPerPage: false, showRowsInfo: false, visiblePageLinks: 10, totalPages: num, onChangePage: function(event, data) { appleList(data.currentPage,''); }, onLoad: function(event, data) { html(list); } }) if(num){ }else{ html(list); } }else{ html(list); } } function html(list){ // 構建頁面 }