我想做一个拉到最后就继续加载更多的效果,和 twitter 和 facebook 查不多的那种
$(window).scroll(function(){
if ($(window).scrollTop() + $(window).height() >= $(document).height() - 60){
if (is_loading == 0){
console.log("bottom of the page reached!");
is_loading = 1;
var page = current_page+1;
var url = "?page="+page
console.log(url)
$.ajax({
url : url,
success: function(data){
current_page = page;
$('#list_table tbody').append(data['html']);
is_loading = 0;
delete data;
},
});
$('#loading').css("display","block");
}
//loaded[pages[current+1]] = loaded[pages[current+1]] + 1;
// if(loaded[pages[current+1]] <= 1)
// loadMoreContent(current+1);
}
上面的是 js 代码,思路就是在滚到下面的时候设置is_loading
为 1
然后做 ajax 请求,请求成功后把 HTML append 到相应元素
但是万万没想到会溢出, firefox 和 chrome 的最新版上都有内存溢出的现象,翻了两三页之后就会卡的不行,最后就崩了。
谷歌百度之后说问题在 jquery 没有垃圾回收的机制
有个解决方案是在完成这次 ajax 后把某个变量设成 null
http://www.jb51.net/article/30458.htm
就是加上一个complete: function (XHR, TS) { XHR = null }
但是对我来说还是没有改观
后端的问题基本是排除,在服务端的日志是翻几页就做了几次请求,每次的请求都是正常的 200
搜了半天也没有很好的解决方案,求指导,能做到那种拉到底部加载更多就 OK 。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.