簡體   English   中英

無限 Ajax jQuery 錯誤在窗口滾動時加載更多(重復數據)問題

[英]Infinite Ajax jQuery bug where on window scroll it loads more (duplicates data) issue

我昨天問了這個問題,我有很好的答案,但它並沒有以最佳能力解決我的問題。

為了解釋這里發生的事情,我正在構建一個消息傳遞系統..但是! 當我加載它時,它會連續復制帖子,然后隨機停止。 我不完全確定為什么。 我已經嘗試了我所知道的一切,但它只是不起作用。

$(document).ready(function() {

    var flag = 0;

    $.ajax({
        type: "GET",
        url: "assets/js/ajax/messages.php",
        data: {
            'offset': 0,
            'limit': 6,
            'user_id': <?php echo $User->Id(); ?>
        },
        success: function(data) {
            $('#messages').append(data);
            flag += 3;
        }
    });

    $(window).scroll(function() {
        if ($(window).scrollTop() >= $(document).height() - $(window).height()) {
            console.log('hi!'+ Date.now());
            $.ajax({
                type: "GET",
                url: "assets/js/ajax/messages.php",
                data: {
                    'offset': flag,
                    'limit': 3,
                    'user_id': <?php echo $User->Id(); ?>
                },
                success: function(data) {
                    $('#messages').append(data);
                    flag += 3;
                }
            });
        }
    });
});

使用 Socket.io 而不是 ajax。

但是如果你想使用這種方式,我建議附加並檢查最后一條消息的 id 。

然后查詢新消息而不是查詢所有內容以避免重復數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM