日期:2014-05-16  浏览次数:20471 次

Ajax根据滚动条读取信息 仿QQ空间个人中心, 遇到些小问题,求帮助
今天下午用jquery做了一个类似与QQ空间个人中心滚动条滚动到最底部的时候刷新新的信息。
遇到了一个问题,用了好多种方法都没法,
想要的效果是,
当指定标签在可见,也就是在当前屏幕中出现了的时候就调用ajax,然后读取数据,
但问题出现了,当滑轮滚动快了的时候,这个条件就达到要求了几次,然后调用方法也调用了几次,就相当于一次性调用了几下方法?
我想要的效果是,当上一个ajax完全读取了信息的时候在调用下一个,
或者在规定时间内只能调用一次方法.

我尝试过的方法有:
用winodw.setTimeout();
ajax同步
但是都失败了.

求各位大大帮助
贴上代码:
JScript code

    jQuery(window).scroll(function(){
        
        //标签到浏览器顶部的高度
        var label_top=jQuery("#refresh").offset().top;
        
        //浏览器滚动的高度
        var scroll_top=jQuery(window).scrollTop();
        
        //当前浏览器窗口的可视化高度
        var window_top=jQuery(window).height();
        
        //文档高度
        var body_top=jQuery(document.body).height();
        
        //判断标签是否在当前可见窗口中
        if(label_top-scroll_top<=window_top){
            alert("执行方法");
        }
    });    





------解决方案--------------------
加一个全局变量呗.....
JScript code

var scroll = false;
jQuery(window).scroll(function(){
        
        //标签到浏览器顶部的高度
        var label_top=jQuery("#refresh").offset().top;
        
        //浏览器滚动的高度
        var scroll_top=jQuery(window).scrollTop();
        
        //当前浏览器窗口的可视化高度
        var window_top=jQuery(window).height();
        
        //文档高度
        var body_top=jQuery(document.body).height();
        
        //判断标签是否在当前可见窗口中
        if(label_top-scroll_top<=window_top && !scroll){
           scroll = true;
            alert("执行方法");
        }
    });