最近作的一個項目須要作頁面無刷新下拉加載圖片,調研了一番,大多都採用檢測滾動條達到底部,而後利用ajax加載下一頁數據對頁面數據進行添加,根據這一邏輯,本身寫了一個,具體代碼以下:html
JQuery寫下拉觸發ajax事件ajax
$(window).scroll(function () { if($(window).scrollTop()==($(document).height()-$(window).height()))//判斷右邊滑動條是否滑到最下 { $.ajax({ url:"",//後臺地址 dataType:"json", data:{},//附帶參數,通常加上上一次請求的結尾ID或者其餘標示 ......, success:function(data){ $("#Album").append(data.result);//經過返回的結果對Album的Div進行添加數據 } }) } })
這一過程基本原理以下,在頁面首次加載的時候加載必定的圖片,等到右邊滑動條滑動到最下面的時候,觸發ajax事件,進行與後臺通訊,經過對後臺請求獲得json數據,其中包含了須要添加到頁面的內容,經過append對頁面原有的層進行追加內容(中間可能還涉及一些數據讀取的問題,若是爲了方即可以直接後臺處理好返回一串html語句直接進行追加,但這樣可擴展性小),從而實現這一效果。json
在實現過程當中還發現了另外一個問題:jq寫的scroll事件容易屢次觸發,即滾動一下鼠標觸發屢次,對於這一個狀況,思考了下主要有如下兩種解決思路:app
1.添加計時器,在5-10秒內只容許觸發一次()url
2.添加一個變量,讓其在scroll剛開始執行時變爲false,只有一次執行完才變回true,以此保證scroll每次只能有一個在執行。spa