網頁拉到底部後,點選重新整理按鈕或F5,頁面內容重複顯示
正常情況:
重複顯示後:
產生問題的原因:queryActs()----queryActsAdd() 進入到改方法中了,但是還沒走到flag=false的時候,scoll觸發,此時的flag = true,因此又載入了一次queryActsAdd方法。【是不是就是類似於高併發的時候沒有加鎖導致的資料異常】
解決方案:加loading標誌位,
與flag(原有)標誌位的區別:詳情見程式碼
加鎖!!!!
var flag = true;var loading=false; queryActs();
function queryActs(){ pageNum = 1; flag = true; $("#acts_timeline").html(""); !loading&&queryActsAdd(); }
function queryActsAdd() {
var uid = var url = loading=true; $.ajax({ type : "POST", // 提交方式 // async:false, data : { pageNum : pageNum, level : activityLevel, status : activityStatus }, dataType : 'json', url : url, success : function(obj) {// 返回資料根據結果進行相應的處理 var totalRecord = obj.total; $("#total_record").html(totalRecord); //設定總數 loading=false;
//滾動載入資料 $(window).scroll(function() { if ($(document).scrollTop() >= $(document).height() - $(window).height()) { console.log(flag);
if(flag===true){ pageNum = pageNum + 1; !loading&&queryActsAdd(); }
} });