Ajax獲取的資料在jsp頁面上重複顯示

2021-08-31 09:50:29 字數 1343 閱讀 9111

現象:滾動頁面滾動條,再重新整理頁面,jsp上重複顯示同一條資料(偶發)

ajax返回的資料正常!

原**如下,遮蔽了一些無關緊要的,所以顯得**有點亂.......

var flag = true;

queryacts();

function queryacts()

function queryactsadd() ,

datatype : 'json',

url : url,

success : function(obj) else

.........}}

});}//滾動載入資料

$(window).scroll(function()

}});

用flag標誌位來確定scroll動作觸發時(滾動時)會不會在重新add。

該現象產生的原因:由於queryactsadd中的ajax請求是非同步的,若當請求已經傳送,但資料還未返回時,觸發了滾輪,那麼此時的flag仍為true,因此scroll會再呼叫一次queryactsadd方法    -------------------導致內容重複顯示

是不是相當於併發的時候沒有加鎖

**如下

var flag = true;

var loading = false;

queryacts();

function queryacts()

function queryactsadd() ,

datatype : 'json',

url : url,

success : function(obj) else

.........}}

});}//滾動載入資料

$(window).scroll(function()

}});

新增loading標誌位

與flag的不同之處:

flag首先預設置true,當達到某種條件時,才變成false,但是滾動載入時,flag為true才能進入方法,在某種時間差下,flag無法起到應有的控制效果。

loading:

loading首先置flase

一執行queryactsadd方法,便將loading置true,防止此時滾動載入,當data到來時再將許可權放開

loading的鎖定效果比flag更好

沒有刪除flag標誌位的原因是:感覺這就是乙個機率問題,就看你執行緒如何神操作了,兩個鎖,更安心!笑哭。。。。。

前端jsp頁面獲取List 格式資料

有時候我們會遇到需要將list 格式的資料反饋到jsp頁面,並迴圈在table中顯示出來,就需要在jsp頁面用到迭代器,現以struts2標籤為例。假設action中即後台傳過來的list 集合名為lists,儲存的每個list都是乙個人的個人資訊,包括名字,年齡,性別等,在table中會依次讀出賦...

ajax跳轉到新的jsp頁面

ajax可以實現區域性重新整理頁面,即在不重新整理整個頁面的情況下更新頁面的區域性資訊。專案中遇到乙個問題 在使用者列表也,當點選某個按鈕時需要去查詢使用者的資訊,查詢成功跳轉到使用者詳情介面 查詢失敗,則在原頁面彈出提示資訊。想到兩個解決辦法 方法一 方法二 後台方法 jsp頁面的ajax fun...

JS獲取頁面資料執行Ajax請求

下面這個例子展示了如何使用js獲取頁面中元素的值,並且將這些值作為引數執行ajax請求。submit task bind click function event var submitbtn this 禁止提交按鈕 submitbtn attr disabled disabled var formd...