1

SQL テーブルから大量のデータを取得するクエリを作成しています。一度に 25 レコード程度しかプルされないように、無限スクロール機能を実装したいと考えています。

私はいくつかの問題を抱えています。

このクエリは、ユーザーが下にスクロールしたときに呼び出されます。jquery は、ページに配置された最後のレコードの最後の ID を php に投稿します。

//ie, this js pulls the id 
var last_order_number = $('.order_number_divs:last').attr('id');

//from this div
<div id="2476" class="order_number_divs">   1121310  </div>

idがページの前のidよりも大きい結果をさらに2つ選択すると、次の2つの結果が確実に得られると思いました。ただし、毎回同じ2つの結果が得られます。

SELECT 
    id,
    order_number
    FROM sales_orders
    WHERE id > '$last_id'
    ORDER BY id ASC
    LIMIT 2

これは、テンプレートを介してデータを実行して div に入力する jquery です。vkTemplateは追加をサポートしていないため、div へのコンテンツの入力が完了したら、入力したばかりの div の ID を削除し、その下の div に ID を指定します。これにより、次回スクロールがあるときにコンテンツそのdivに入ります。

$(window).scroll(function () {

    if ($(window).scrollTop() >= $(document).height() - $(window).height() - 10) {



        var last_order_number = $('.order_number_divs:last').attr('id');

        console.log(last_order_number);
        $.ajax({
            type: "POST",
            async: false,
            url: "queries/privileged_search_more_content.php",
            data: "user=" + "<?=$_COOKIE['username']?>" + "&last_order_number=" + last_order_number,
            dataType: "json",
            success: function (data) {
                console.log(data);

                $('#INT-order_information_container').vkTemplate("templates/get_orders_initial_template.tmpl?" + <?=time()?> , data, function () {

                $('#INT-order_information_container').removeAttr('id');
                $('#template_div_next').removeAttr('id')
                                       .attr('id', 'INT-order_information_container');

                });
                console.log($.active);
            }
        });

    }
    });

同じ 2 つのレコードが何度もプルされている理由について何か考えはありますか?

どうもありがとう!

また、私が見つけたこのスクロール機能は、上下に呼び出されるようです。しかし、それは別の質問です。少なくともそれだけは知っているということです。

4

1 に答える 1

1

vkTemplate は追加をサポートしています。vkTemplate のホームページを見てください。

http://www.eslinstructor.net/vktemplate/

メニュー項目「Append Technique」があります。

vkTemplate で追加を実装する別の方法は、このプラグインをカスタマイズすることです。それは簡単です: コードを開いて行を見つけます #94,102,117 https://github.com/vkiryukhin/vkTemplate/blob/master/vktemplate.js

$(elm).empty().append(. . .)

この式から empty() を削除します。

お役に立てれば、

-ヴァディム

于 2012-08-15T05:12:18.060 に答える