現象:滾動頁面滾動條,再重新整理頁面,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...