网友真实露脸自拍10p,成人国产精品秘?久久久按摩,国产精品久久久久久无码不卡,成人免费区一区二区三区

小程序模板網

微信小程序上滑加載下拉刷新(onscrollLower)分批加載數據

發布時間:2018-04-18 10:34 所屬欄目:小程序開發教程

分享者:kingrome2017,來自原文地址

 

上篇:

 

前言

頁面緩存的設置優化了頁面加載,減少了頻繁的調取接口,使用戶在斷網的情況下有更好的體驗。

每個微信小程序都可以有自己的本地緩存,可以通過 wx.setStorage(wx.setStorageSync)、wx.getStorage(wx.getStorageSync)、wx.clearStorage(wx.clearStorageSync)可以對本地緩存進行設置、獲取和清理。本地緩存最大為10MB。

注意: localStorage 是永久存儲的,但是我們不建議將關鍵信息全部存在 localStorage,以防用戶換設備的情況。

 

項目需求

通過使用scroll-view 自定義的鼠標滾動事件onscrollLower,監聽頁面下拉事件

page.init()的方法里封裝了請求數據的接口,后臺api文檔自帶分頁pageSize,默認值為10,-1為請求全部數據。

說明:

觸發下滑事件通過與頁面data緩存數據對比,去請求接口。

 

代碼實現

 

				
  1. var n=0
  2. page.init = function(callback) {
  3. page.data.loading = true;
  4. n+=10;
  5. cardService.listFavoriteCards(n,function(result){
  6. var cards = result.data.favoriteCards;
  7. var starCards = result.data.starCards;
  8.  
  9. starCards.sort(function(c1,c2){
  10. var c1Name = pinyingUtil.getInitials.convertPinyin(c1.name);
  11. var c2Name = pinyingUtil.getInitials.convertPinyin(c2.name);
  12.  
  13. return c1Name > c2Name ? 1 : -1;
  14. });
  15.  
  16. if(starCards && starCards.length> 0) {
  17. starCards.forEach(function(c){
  18. var compressEntName = dictService.compressEntName(c.companyName);
  19. c.compressEntName = compressEntName;
  20. });
  21. }
  22.  
  23. page.setData({
  24. "favoriteCards" : cards,
  25. "starCards" : starCards,
  26. "filterType" : "name",
  27. "groups" : cardService.groupCardsByNameFirstLetter(cards),
  28. "loadding":false
  29. });
  30. wx.setStorageSync("setgroups",page.data.groups)
  31. });
  32. };
  33.  
  34. }
 

				
  1. onLoad: function (options) {
  2.  
  3. var geigroups=wx.getStorageSync('setgroups')
  4. var result =[]
  5. for(var i=0; i<geigroups.length; i+=5){
  6. result.push(geigroups.slice(i,i+5));
  7. }
  8. var resultd=result[0]
  9. if(geigroups){
  10. page.setData({
  11. "groups" : resultd
  12. });
  13. console.log('緩存')
  14. }else{
  15. if (wx.getStorageSync("token")) {
  16. page.init();
  17. page.initProfile();
  18. } else {
  19. App.addListener("evt_login", function () {
  20. page.init();
  21. page.initProfile();
  22. });
  23. }
  24. console.log('正常')
  25. }
  26. }
 

				
  1. onscrollLower:function(){
  2. var page = this;
  3. var geigroups=wx.getStorageSync('setgroups') //第一步拿數據
  4. var result =[] //定義空數組
  5. var n=0; //定義index
  6. for(var i=0; i<geigroups.length; i+=10){
  7. result.push(geigroups.slice(i,i+10));
  8. } //把數據每10個一組push到 result里面
  9. n+=1;
  10.  
  11. var q=this.data.groups.length;
  12. if(geigroups){ //如果有緩存
  13. if(geigroups.length<=q) //如果當前data的數據少于緩存執行以下命令
  14. if (wx.getStorageSync("token")) { //如果有token請求數據
  15. page.init();
  16. page.initProfile();
  17. } else {
  18. App.addListener


易優小程序(企業版)+靈活api+前后代碼開源 碼云倉庫:starfork
本文地址:http://www.xiuhaier.com/wxmini/doc/course/23658.html 復制鏈接 如需定制請聯系易優客服咨詢:800182392 點擊咨詢
QQ在線咨詢
AI智能客服 ×