1
            // After a page turn
            after: function(opts) {

                var currPageIndex = opts.curr - 1;

                generatePage(currPageIndex);            // This page
                generatePage(currPageIndex + 1);        // Right side page
                generatePage(currPageIndex + 2);
                generatePage(currPageIndex + 3);
            } 
        });
    });

    // Generates the page
    function generatePage(pageID){               

        // Check not already loaded
        if(pageID >= 0 && pageID < arrPages.length && !arrPages[pageID][2])
        {
            arrPages[pageID][2] = true;
            $('#page' + pageID).html('<img src="<%=strProjectPath%>/pages/originals/' + arrPages[pageID][1] + '" alt="Page image" />');
        }
    }

    // Load first page
    $(document).ready(function() {
        generatePage(0);
        generatePage(1);
        generatePage(2);
    });

ご覧のとおり、ドキュメントの準備ができると、ページ0、1、および2が生成されます。0はすぐに表示できる画像で、ページをめくるときに1と2がプリロードされます。

ページをめくると、表示している現在の2ページ(直接スキップされてプリロードされていない場合)と次の2ページが読み込まれます。

すぐに表示できるページを最初にロードするように、どのようにロードにバイアスをかけることができますか?Jquery onloadを使用して次のページをキューに入れることができますか?現時点では、理論的には4ページすべてが同時に画像を読み込むことができますが、これは携帯電話では遅くなります。

4

1 に答える 1

1

もちろん、を使用することはできますがjQuery load()、すぐにすべての画像を追加するべきではありません。たとえば、次のようにキューに入れることができます。

var preload = function (pageID, rest) {
    $('#page' + pageID).append(
        $('<img/>', {
            src: "<%=strProjectPath%>/pages/originals/' + arrPages[pageID][1] + '"
        }).load(function () {
            rest.length && preload(rest[0], rest.splice(1));
        })
    );
};
于 2011-09-01T21:31:40.053 に答える