我的应用程序Webview
用于具有大量 CSS 和 Javascript(约 0.5 MB)的网站。可能吗:
在用户打开应用程序之前缓存所有的 CSS 和 Javascript?
如果没有,也许在用户第一次打开应用程序后,有可能将 CSS 和 Javascript 缓存很长时间(因为它很少更改)?
或者也许可以将 .js 和 .css 文件放在 Android 文件夹中,所以它会从文件中加载它而不是连接到服务器?
我的应用程序Webview
用于具有大量 CSS 和 Javascript(约 0.5 MB)的网站。可能吗:
在用户打开应用程序之前缓存所有的 CSS 和 Javascript?
如果没有,也许在用户第一次打开应用程序后,有可能将 CSS 和 Javascript 缓存很长时间(因为它很少更改)?
或者也许可以将 .js 和 .css 文件放在 Android 文件夹中,所以它会从文件中加载它而不是连接到服务器?
一种方法是使用 HTML5 localStorage。像这样的东西(未经测试):
function loadScripts() {
var scriptURL = '/myscript.js',
cssURL = '/mycss.css',
jsXHR,
cssXHR;
var applyStyleAndScript = function(styleText, scriptText) {
var styleTag = document.createElement('style'),
scriptTag = document.createElement('script');
styleTag.innerText = styleText;
document.body.appendChild(styleTag);
scriptTag.innerText = jsText;
document.body.appendChild(scriptTag);
}
if (localStorage && localStorage[scriptURL] && localStorage[cssURL]) {
applyStyleAndScript(localStorage[cssURL], localStorage[scriptURL]);
} else {
cssXHR = new XMLHttpRequest();
jsXHR = new XMLHttpRequest();
cssXHR.open('GET', cssURL);
cssXHR.onload = function(e) {
var cssText = e.target.responseText;
if (localStorage) localStorage[cssURL] = cssText;
jsXHR.open('GET', scriptURL);
jsXHR.onload = function(e) {
var jsText = e.target.responseText;
if (localStorage) localStorage[scriptURL] = jsText;
applyStyleAndScript(cssText, jsText);
}
jsXHR.send();
}
cssXHR.send();
}
}