demo23-空闲时间加载数据
将楼层的加载操作放入一个队列中,我们可以在用户停止滚动操作3s后开始自动加载这个队列中的楼层,而当用户开始滚动的时候清空这个加载队列,停止滚动3秒后又重新开始加载。通过这样处理可以合理利用用户浏览的空闲时间来加载页面,让用户感觉页面加载更快。
var scrollTimer = null; var isScrolling = false; $(window).bind('scroll.loadFloor', function (e) { isScrolling = true; clearTimeout(autoLoadTimer); clearTimeout(scrollTimer); autoLoadingQueue = []; resourceLoader && resourceLoader.pause(); scrollTimer = setTimeout(function () { isScrolling = false; if (pageConfig.idleTimeLoad) { autoLoadTimer = setTimeout(autoLoad, 3000); } }, 200); }); function autoLoad () { if (!isScrolling) { runFloorLoadQueue(); } }