0
我正在使用scrollTop函數來檢測用戶距離屏幕底部多近以添加更多內容。我的javascript函數是這樣的:scrollTo呼叫速度太快
if ($(window).scrollTop() >= $(document).height() - $(window).height() - 75) {
var url = '<%=Url.Action("MoreView", "Status", new { id = ViewData["Id"],
page = Convert.ToInt32(ViewData["PageNumber"])+1 })%>';
NextPage(url); //this does an ajax call to the action method on the server
}
一切工作正常,問題是,window.ScrollTop> 75有時happeng 2或3次如此之快,它加載相同內容的2〜3倍。我可以通過在服務器端使用會話變量來解決這個問題,但不想走這條路線,因爲這可能會讓IMO變得醜陋。有什麼建議麼?
正如你看到的在var Url中設置爲爲當前的VideData [PageNumber]添加一個+1。在我的MVC動作中,這個VideData [PageNumber]被設置爲任何頁面變量通過。所以它應該在部分視圖的每個渲染上都有所不同,但是由於它發生得太快,部分視圖將具有相同的viewdata變量 – Jake
@Jake - 因此,您要在此部分視圖中加載此代碼*然後? (如果是這樣,你確定問題出在你的JavaScript中,而不是在你的'MoreView'中......如果JavaScript只是在頁面/部分負載上執行,那麼它每次負載不會發生超過一次,對吧? ) –
@ SeanVieira-是的,我正在加載我的部分視圖。我改變了觸發ajax調用的scrollTop來代替鏈接,並且它可以正常工作,而不需要使用點擊兩次加載相同的數據。但點擊加載頁面更多的內容是舊時尚,我試圖模仿Facebook的做法。 – Jake