- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
已成功构建 HTML5 应用程序。以下库用于此:
一切正常用 Phonegap cordova-2.0.0 包裹它
但是注意到应用程序非常慢。
我的应用程序实际上执行 ajax 请求获取 Json 并加载 UI(主要是 listviews)
是否有任何性能改进技术可以使我的应用程序运行得更快?
还有什么工具可以测试吗?
目标平台:Android 和 iOS。
编辑:
注意到的一件事是应用程序的缓存大小在每次单击
和页面
转换时都在增加(达到 MB 的时间).. 尽管禁用了 ajax 缓存。 .我需要处理其他事情吗?
最佳答案
您可以通过以下方式提高应用程序的速度:
1. 使用您在项目中包含的 js 的精简版本。
2. 避免使用尺寸较大的图片。使用网络兼容的 PNG 文件调整它们优化图像使用 CSS Sprite 表
.icon {
width: 14px; height: 14px;
background-image: url("glyphicons-halflings.png");
}
.icon-glass {
background-position: 0 0;
}
.icon-music {
background-position: -24px 0;
}
.icon-search {
background-position: -48px 0;
}
使用正确的图像尺寸(不要在 HTML 中缩放图像)在可扩展的分布式系统(即 S3)上托管图像避免图像的 404s
<img src="{{pic}}" onerror='this.src="nopic.jpg"'/>
3. 避免使用过多的 CSS。限制阴影和渐变链接 box-shadow,border-radius,gradients,text-align尝试禁用一些会降低速度的 CSS(Simon MacDonald 的想法)。在您的 jquery 移动 .css 文件中,将其添加到底部:
* {
text-shadow: none !important;
-webkit-box-shadow: none !important;
-webkit-border-radius:0 !important;
-webkit-border-top-left-radius:0 !important;
-webkit-border-bottom-left-radius:0 !important;
-webkit-border-bottom-right-radius:0 !important;
-webkit-border-top-right-radius:0 !important;
}
4. 使用 CSS Transitions + 硬件加速 使用原生滚动
5.如果您使用任何 Live url 来更好地获取 JS,请下载它们并在本地使用。
6. FastClick FastClick 是一个简单易用的库,用于消除移动浏览器上物理点击和点击事件触发之间的 300 毫秒延迟。(jjsquared 的想法)
7.使用Slpash屏幕。
8. 仅在必要时避免使用框架。尝试进行响应式设计。
9. 不要在服务器上生成用户界面。在客户端用JavaScript创建用户界面
10.最小化回流
慢
$("#header a.back").on("click", clickHandler);
$("#header a.back").css("color", "white");
$("#header a.back").css("text-decoration", "none");
$("#header a.back").attr("href", "#");
快速
var $backButton = $("#header a.back");
$backButton.on("click", clickHandler);
$backButton.css("color", "white");
$backButton.css("text-decoration", "none");
$backButton.attr("href", "#");
11.避免网络访问不要制作依赖于网络的应用程序来获取内容
$.ajax({url: "services/states"}).done(function(data) {
states = data;
});
使用缓存静态数据本地存储、数据库和文件慢
$.ajax({url: "slow/feed"}).done(function(data) {
});
快速
dataAdapter.getItems().done(function(data) {
});
12.不要等到数据显示UI
// Display view
displayView();
// Get data
$.ajax({url: "product/101"}).done(function(product) {
// Update view
});
关于performance - 微调 HTML5 Phonegap 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12278685/
Example image 如何在 Phonegap 中添加像这张图片这样的 float 气泡通知。 最佳答案 没有您正在寻找的“开箱即用”插件。但是,您可以创建自己的插件或简单地使用 phonega
我正在使用 HTML 和 JS、JQuery Mobile 构建一个应用程序,并使用 PhoneGap Build 进行打包。客户想知道是否可以添加打印功能...有人知道吗?没有 PG Build 打
我已经安装了 Phonegap 使用 $ npm install -g PhoneGap 我也创建了项目。之后我做了 $ PhoneGap build android 它给出了 [phonegap]
我尝试创建 Phonegap 项目,其中需要集成 ASIHTTPRequest 和 JASON 引用, 并出现以下错误 ld: duplicate symbol _SBJSONErrorDomain
我有一个 Phonegap 应用程序,我从早期版本的 Phonegap 开始,我想升级到最新版本。我需要采取哪些步骤来升级它? 我正在寻求一般性答案,但我的具体情况是 Phonegap 1.1.0 -
我已在我的 MAC 电脑(IOS 10.5.8,SDK 3.1.2)上成功安装 PhoneGap。尝试创建一个新的基于 PhoneGap 的应用程序,包含 PhoneGap 框架并将所需的文件复制到
我正在 phonegap 中为三个不同的平台构建一个应用程序:Android、iOS 和 Blackberry。这样做时,我必须检测设备类型,以便我可以在不同平台和不同设备(如 Android Pho
开始在Mac上使用phonegap(Xcode 4,构建iPhone应用程序)我已经阅读了很多有关名为phonegap.plist的文件的内容,包括外部URL的白名单和其他内容。 这是我的问题,我在
所以我有一个运行 Phonegap 1.4.0 的应用程序(不要问),我决定升级到 1.8.1,这样做时 Phonegap 全局变量不再存在,将被替换为实用程序。 所以我转换了每一次出现: var t
我尝试了什么: 我正在开发一个安卓应用程序。在我的应用程序中,我必须打开 -> 向用户显示 Microsoft Office 文档(doc、docx、xls、xlsx、ppt、pptx)内容。为此,我
使用phonegap制作iOS应用时,ChildBrowser插件可以打开一个可以使用phonegap功能的远程页面吗? 例如:在phonegap应用程序中的index.html,调用childbro
我有一个带有 angularjs 的网络应用程序。我想使用 phonegap 将它变成一个移动应用程序 (android)。 我使用了 phonegap 构建:https://build.phoneg
我正在使用 Phonegap build 为每个平台生成可执行文件。每次更改代码时,我都必须在 phonegap build 上上传代码并生成新的 Apk 文件(适用于 android)。我不想在真实
我很生气,这是毫无疑问的,除了明显的可见差异之外,有人报告高度为: $('body').outerHeight(); //1780 与在我的本地 Windows 8 机器上使用 phonegap
我最近使用 phonegap 完成了我的第一个混合应用程序项目。当谈到公开测试时,我有点害怕签名过程。我从这里以及网上的其他地方阅读了许多不同的建议 fragment 来完成这项工作。 以下是如何为
我是 phonegap 的新手,我尝试创建一个简单的 phonegap 应用程序。 使用命令行安装phonegap后:--- 我已经成功创建了项目,但是当我尝试运行 phonegap build io
我正在为 Android 平台制作一个 phonegap 应用程序。在这个应用程序中,我想在多个 html 页面中滑动导航。请告诉我该怎么做。要么在单个 html 页面中完成,要么我必须为此滑动导航创
是否有任何插件可用于 Juce我可以添加哪些库可以同时适用于 IOS 和 android?如果没有,我如何集成 Juce我的电话间隙应用程序中的库? 最佳答案 没有插件。但您可以使用介绍榨汁机来创建不
Phonegap 刚刚推出了一种方法,可以使用以下命令使用本地服务器立即查看您对 phonegap 应用程序的更改: phonegap serve 然后通过下载 PhoneGap Developer
我们对如何集成phonegap插件,然后使用phonegap build构建我们的移动应用程序有一些疑问,这可能吗? 当您使用 Phonegapbuild 构建您的应用程序时,它会为所有受支持的设备构
我是一名优秀的程序员,十分优秀!