我正在开发基于jq和jq mobile的移动应用程序(Android)。我试图尽可能减少启动应用程序所需的时间(例如,许多事情都在后台完成)。所有css / js / html页面都包含在App中(未通过网络加载)。
我认识到只需加载一个重要时间即可。处理jquery-mobile js文件(S3大约800-900ms,上网本(intel Atom,1.6GHz)500ms)。
当然jquery-mobile.js的文件大小非常大,但如果我只是比较加载时间和我的脚本和jqm的文件大小,jqm需要更多的时间(只是字节/秒)。
因此,我认为在装载之后已经"某些东西"完了...
有没有办法减少jqm-js文件的加载/处理时间(不使用客户构建jq-mobile版本)?
源代码:
webView=(WebView) findViewById(R.id.webView);
WebSettings settings = webView.getSettings();
settings.setJavaScriptEnabled(true);
settings.setDatabaseEnabled(true);
settings.setDatabasePath("/data/data/"+packageName+"/databases");
settings.setDomStorageEnabled(true);
settings.setUserAgentString(Locale.getDefault().getLanguage());
webView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
webView.addJavascriptInterface(new JavaScriptInterface(), "jsinterface");
webView.loadUrl("file:///android_asset/www/index.html");
什么是大:
jqmobile库有200k左右,加载/处理时间约为800ms(三星S3)。我的模块有例如大小为81k,加载时间为40-50ms
即使jq-mobile代码可能超高效(由专家开发),我也不明白其中的区别。所有* .js文件都以相同的方式加载:
var script = document.createElement('script');
script.setAttribute("src", fname+"?id="+rnd_num);
script.setAttribute("type", "text/javascript");
script.setAttribute("language", "javascript");
document.getElementById('id_head').appendChild(script);
有什么想法吗?
使用自定义版本可能会稍微减少加载时间,但我无法相信可以达到< 100ms之类的东西。