1

我的应用程序Webview用于具有大量 CSS 和 Javascript(约 0.5 MB)的网站。可能吗:

  • 在用户打开应用程序之前缓存所有的 CSS 和 Javascript?

  • 如果没有,也许在用户第一次打开应用程序后,有可能将 CSS 和 Javascript 缓存很长时间(因为它很少更改)?

  • 或者也许可以将 .js 和 .css 文件放在 Android 文件夹中,所以它会从文件中加载它而不是连接到服务器?

4

1 回答 1

0

一种方法是使用 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();
    }
}
于 2013-08-07T19:33:21.373 回答