// 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页。
如何偏置加载,因此它首先加载可立即查看的页面?你能用Jquery onload排队下一页吗?目前,4页理论上可以同时加载他们的图像,这在手机上会很慢。
答案 0 :(得分: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));
})
);
};