From b09a5f0906c043edd79e2b2467a035d007893c55 Mon Sep 17 00:00:00 2001 From: Willem Date: Wed, 16 Mar 2016 22:53:58 +0100 Subject: [PATCH] added delayed dss for testing --- es5-ff-spa-loader.js | 31 ++++++++++++++++++++++---- example/app_server/www_views/index.ejs | 2 -- 2 files changed, 27 insertions(+), 6 deletions(-) diff --git a/es5-ff-spa-loader.js b/es5-ff-spa-loader.js index ec6072d..ab82a1e 100644 --- a/es5-ff-spa-loader.js +++ b/es5-ff-spa-loader.js @@ -118,6 +118,7 @@ percentage: true, } }, + delayDss: false, // TODO: move to cache type options }, cache: { meta: null, @@ -133,6 +134,12 @@ */ var cacheDB = null; + /** + * Use delayed fetch + * @private + */ + var delayedResources = []; + /** * The factory which contains detection helpers and cache backend builders. */ @@ -585,7 +592,13 @@ }); }; - var loadResource = function (resource, cb) { + var loadResource = function (resource, cb, loadDelayed) { + if (options.loader.delayDss === true && resource.type === 'css' && loadDelayed === undefined) { + utilDebug('loadResource delay '+JSON.stringify(resource)); + delayedResources.push(resource); + return cb(null); + } + var resourceUrl = resource.url; if (resourceUrl.indexOf('http') === -1) { resourceUrl = options.server.url + resourceUrl; @@ -996,6 +1009,18 @@ }); }; + var loadDelayedResouces = function() { + if (delayedResources.length === 0) { + return; // nop + } + var loadResourceStep = function (resource, cb) { + loadResource(resource,cb, true); + }; + utilRunStack('loadResources', delayedResources, loadResourceStep , function (/*err*/) { + //cb(err); + }); + }; + /** * Starts the loader. * @@ -1011,6 +1036,7 @@ bootCleanup(); // move after ang. bootAngular(function(err) { if (err !== null) { return options.error.handler(err); } + loadDelayedResouces(); if (typeof cbArgu === 'function') { cbArgu(); } @@ -1107,8 +1133,6 @@ /** * Boot cleanup removed the html tags by id after the timeout. * - * note: sync function - * * @private */ var bootCleanup = function() { @@ -1122,7 +1146,6 @@ } utilDebug('bootCleanup after '+options.boot.cleanup.timeout+' ms.'); setTimeout ( function () { - utilDebug('bootCleanup run'); for (var tagIdx in options.boot.cleanup.tags) { var tagId = options.boot.cleanup.tags[tagIdx]; var tag = document.getElementById(tagId); diff --git a/example/app_server/www_views/index.ejs b/example/app_server/www_views/index.ejs index bf7bafb..4bf35f1 100644 --- a/example/app_server/www_views/index.ejs +++ b/example/app_server/www_views/index.ejs @@ -8,8 +8,6 @@