2013-08-17 13 views
0

我已經實現了一個樣式表開關解決方案,其樣式表href在用jQuery點擊時發生了變化。如何預先加載css文件而不將它們應用於yepnope.js?

它工作正常,但在第一頁加載時,在樣式表之間更改時會有閃爍,因爲不同的css文件之前沒有加載過(一旦它們被使用,就沒有閃爍)。

所以我用yepnope.js預加載與css文件:

yepnope([{ 
    load: 'http://path/to/stylesheet_1.css', 
    callback: function (url, result, key) { 
    console.log(url, result, key); 
    } 
}, { 
    load: 'http://path/to/stylesheet_2.css', 
    callback: function (url, result, key) { 
    console.log(url, result, key); 
    } 
}]); 

而且一切工作正常,除了它在加載時被應用於每一個樣式表。

是否有預加載樣式表而不實際應用它們?

編輯

我也試過:

yepnope([{ 
    load: 'preload!http://path/to/stylesheet_1.css' 
}, { 
    load: 'preload!http://path/to/stylesheet_2.css' 
}]); 

他們documentation page閱讀preload! Prefix之後,但似乎並沒有工作。

編輯2

也嘗試添加:

yepnope.addFilter(function (resourceObj) { 
    resourceObj.noexec = true; 

    return resourceObj; 
}); 

但它似乎沒有產生效果。

回答

0

你可以ajax請求css文件,並緩存它的文本內容,然後當你想加載它時將它粘貼到一個樣式標籤。

0

如果您重新定義了 '預加載' 前綴,似乎工作使用前:

yepnope.addPrefix("preload", function(resource) { 
    resource.noexec = true; 
    return resource; 
}); 

來源:https://gist.github.com/dzello/1015783

相關問題