1

Yiiのリストビューに多くのアイテム(数万)を表示するソリューションを探しています。継続的にスクロール可能なリストに表示できるようにしたいと思います。これがキャッチです。ユーザーがリストの最後を超えてスクロールすると、スクロールしたばかりのデータを新しいデータで置き換えたいと思います。あなたが本当に長いプレイリストを持っているなら、グーグルミュージックのようなものです。

Yiinfinite-scrollerを見ましたが、リストの最後に追加されて非常に長いリストが作成され、メモリ使用量が減少しています。

ありがとう

4

1 に答える 1

3

その現実は、jsのほんの数行でjQueryの助けを借りて無限スクロールを実装するのは本当に簡単です。コンテンツのdivの高さを測定し、ページがスクロールするときにdivの高さからスクロールの差を差し引きます。最小量に達したら、コンテンツのクエリを実行し、高さカウンターをリセットして、次の手順を繰り返します。

<script type="text/javascript">
var contentHeight = 4000,;
var pageHeight = document.documentElement.clientHeight;
var scrollPosition;
var n = 1;

function scroll(){
    if(navigator.appName == "Microsoft Internet Explorer")
        scrollPosition = document.documentElement.scrollTop;
    else
        scrollPosition = window.pageYOffset;

    if((contentHeight - pageHeight - scrollPosition) < 500){
        $.ajax({ url: "./yourAPI/?next="+n, cache: false,
        success: function(data){
            //append result
            $('#infscroll').append('<div>'+data.result+'</div>');
        }, dataType: "json"});
        n += 1;
        contentHeight += 4000;
    }
}

$(document).scroll(function(){
    setInterval('scroll();', 250);
});
</script>

<div id="infscroll"></div>
于 2012-06-26T16:17:09.020 に答える