PhoneGap 与 jQuery Mobile 性能问题的常见来源有哪些?

2024-01-11

我有一个使用 PhoneGap 1.0 和 jQuery Mobile 1.0b2 编写的应用程序,在 iPhone 和 iPad 上运行。

自从我开始使用该框架以来,我一直受到应用程序中“页面”之间切换的性能问题的困扰。按下按钮后,在转换发生之前会有第二次暂停,有时更长。我已经尝试了所有的 webkit 调整,我什至等待两个框架的升级(我从 Phongap 0.95 和 jQuery Mobile Alpha 4 开始),但这个问题尚未解决。

我使用尽可能多的“内置”对象(而不是自定义按钮图像),并且在每个屏幕上使用我自己的 PNG 背景。该应用程序本身仅包含 3 个页面,外加一个用作选项屏幕的页面。

我不想寻找特定的解决方案,而是想知道在使用 PhoneGap 和 jQuery Mobile for iOS 时存在哪些与性能相关的常见问题?这样其他人在处理自己的问题时就可以寻找选项清单


在 Safari 中运行 jQuery Mobile 应用程序与在本机 iOS 中的 UIWebView 中运行它之间的最大区别之一是缺少 Nitro 引擎。它是在 iOS 4.3 中引入的。它使 Safari 中的 JavaScript 处理速度提高了一倍,但他们未能将其构建到本机应用程序或全屏缓存 Web 应用程序中。从 iOS 5 开始,Nitro 引擎被引入到平台的其余部分。
http://arstechnica.com/apple/news/2011/06/ios-5-brings-nitro-speed-to-home-screen-web-apps.ars http://arstechnica.com/apple/news/2011/06/ios-5-brings-nitro-speed-to-home-screen-web-apps.ars

除了 Nitro 引擎之外,围绕 jQuery Mobile 和页面转换还可能存在其他性能问题。平台越慢,侥幸就越明显。有时,它可能表现为页面渲染之间的白色闪烁。其他时候,它可以表现为:过渡到新屏幕 - 闪到上一个屏幕 - 闪到新屏幕。这些侥幸并不一致,要弄清楚它发生的确切原因可能会很困难。更新更快的设备在这方面的问题较少,所以好消息是,随着时间的推移,这个问题将会消失。面向未来,设备很快就会迎头赶上。

话虽如此,我们还要考虑用户单击所需内容的速度有多快的性能。通过禁用页面转换可以最大程度地减少转换异常。这带来了额外的好处,将有效页面性能提高了 500 毫秒。页面转换很漂亮,但事实是它们很慢。性能是一个特点。只需将其包含在自定义脚本中即可关闭转换。

$(document).bind("mobileinit", function(){
  $.mobile.defaultPageTransition="none";
});

另外,(这会发送给可能阅读此内容的整个社区)...认真考虑您是否需要真正拥有一个本机应用程序。除非您需要 PhoneGap 来访问摄像头、陀螺仪或 Safari 无法提供的其他硬件支持,否则您始终可以通过使用网络获得更好的性能。我理解人们希望拥有一个“应用程序商店”的愿望,但只有 1% 的应用程序被发现,而且它们的半衰期只有几周。然后,每当操作系统有更新时,您都会面临发布更新的维护噩梦。仅通过网络发布有很多优点。只需一次更新,您就可以让每个平台上的每个人都得到更新。因此,请考虑平台的性能,还要考虑您的版本的性能。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PhoneGap 与 jQuery Mobile 性能问题的常见来源有哪些? 的相关文章

  • 像 TraceGL 一样分析 Objective C 中的代码路径?

    TraceGL 是一个非常简洁的项目 它允许 JS 程序员跟踪 Javascript 中的代码路径 它看起来像这样 我想为 Objective C 构建类似的东西 我知道运行时使跟踪方法调用变得相当容易 但是我如何跟踪控制流 例如 在上面的
  • ios - 如何声明静态变量? [复制]

    这个问题在这里已经有答案了 C 中声明的静态变量如下 private const string Host http 80dfgf7c22634nbbfb82339d46 cloudapp net private const string S
  • React Native - NSNumber 无法转换为 NSString

    下面是我的反应组件的一部分 我有一个名为 daysUntil 的道具进入此组件 其中包含一个数字 在此示例中 传递数字 0 导致 fontWeight 函数返回 700 render function return
  • React Native Detox:无法接受系统警报弹出的位置权限

    使用以下命令从命令行启动应用程序detox test configuration ios sim debug 通过代码启动应用程序await device launchApp permissions location always noti
  • 寻找可靠的方法来选择iPhone 13微距相机设备

    我正在使用 objc 开发一个应用程序 我必须选择 iPhone 13 Pro 和 13 Pro Max 中配备的新微距摄像头 目前 我在所有其他设备上选择我的相机 并剪掉此代码 AVCaptureDeviceDiscoverySessio
  • UICollectionViewCell 拖动预览的自定义视图

    我正在尝试实现一项功能 用户可以将一个集合视图单元格拖放到另一个集合视图单元格上 但是 我想完全更改运动中物体的预览 以匹配我的应用程序的视觉隐喻 该项目没有移动 该项目包含的东西正在移动 例如 假设我的collectionview单元格显
  • 如何在ios开发中从mp3文件中提取元数据

    我正在开发一个带有云存储的 ios 音乐播放器 我需要提取音乐信息 如标题 艺术家 艺术作品 我有一个名为 playit 的操作 可以播放和暂停 mp3 文件 它还应该使用与 mp3 文件关联的元数据来填充一些 UILables 和 UII
  • HttpClient setReachabilityStatusChangedBlock 声明没有接口

    尝试使用 AFNetworkings ReachabilityStatusChanged 但得到 HTTPCLIENT 没有可见的 interface 声明选择器 setReachabilityStatusChangeBlock 但Http
  • 如何在 iOS 中创建多行表格单元格?

    如何让第二个单元格扩展以适合文本而不是缩放文本 iOS 中有内置的方法可以做到这一点 还是我必须想出一些自制的解决方案 如果您查看 iOS 联系人应用程序 会发现有一个类似地址的框 但我找不到如何实现这一点 对于任何希望将来实现这一目标的人
  • Pandas apply 与 np.vectorize 从现有列创建新列的性能

    我正在使用 Pandas 数据框 并希望创建一个新列作为现有列的函数 我还没有看到关于之间速度差异的很好的讨论df apply and np vectorize 所以我想我会在这里问 熊猫apply 功能很慢 根据我的测量 在一些实验中如下
  • 检查 Perl 函数参数值得吗?

    有很多关于MooseX 方法 签名 http search cpan org perldoc MooseX Method Signatures甚至在此之前 诸如参数 验证 http search cpan org perldoc Param
  • 使用 HTTP NSURL 创建 AVAsset

    我正在尝试合并两个NSURLs包含视频参考 其中一个 URL 指向 AWS 上的视频 另一个 URL 指向本地存储的视频 我的导出代码有效 因为我已经尝试使用两个本地视频 但每当我尝试合并 HTTP url 和本地 url 时 我都会收到此
  • Java 的 System.arraycopy() 对于小数组有效吗?

    是Java的System arraycopy 对于小数组来说是高效的 或者它是本机方法这一事实是否使其可能比简单的循环和函数调用效率低得多 本机方法是否会因跨越某种 Java 系统桥梁而产生额外的性能开销 稍微扩展一下 Sid 所写的内容
  • 如何将 RGB 值转换为十六进制字符串 iOS swift

    我想将 RGB 值转换为十六进制字符串 我将十六进制转换为 RGB 如下所示 但反之亦然 func hexStringToRGB hexString String gt red CGFloat green CGFloat blue CGFl
  • 我的 iPhone 6 获取 iPhone 5 媒体查询

    我不明白这里发生了什么事 我在 CSS 媒体查询中专门针对 iphone 5 media only screen and min device width 320px and max device width 568px some div
  • XOR或其他简单的文件混淆方法ios目标c

    我正在开发一个使用受版权保护的 pdf 文件的 ios 应用程序 我正在寻找一些简单的方法来混淆文件以确保安全 这些方法不需要我经历额外的大众市场 CCATS 加密审查流程 但也将确保版权所有者已尽我所能来保证他们的数据安全 当然 我用密码
  • 从应用程序打开/关闭 iPhone 的 Wifi

    我需要打开或关闭 iPhone 中的 wifi 有什么方法可以做到吗 还是被禁止了 私有框架 所有使用公共 SDK 编写的应用程序都经过沙箱处理 他们只能访问苹果认为可以在该沙箱中使用的属性和数据 恐怕 Wi fi 不在列表中 请看一下这个
  • 如何动态添加XCTestCase

    我正在为一个白标签项目编写 UI 测试 其中每个应用程序都有一组不同的菜单项 测试点击每个菜单项并截取屏幕截图 使用快车道快照 https docs fastlane tools actions snapshot 目前这一切都发生在一个内部
  • Objective-C 中 NSURL 为 null 而 NSString 是正确的

    我有一个NSString包含一个 url 以及当我分配时NSURL与NSString NSURL 输出 空 这是因为url中有一些非法字符 导致NSURL不编码就无法读取NSString包含网址 NSString u incomingUrl
  • 初始化Object中的空字符串?

    有人使用以下方法来初始化 NSstring NSString astring NSString alloc init 我想知道为什么不直接使用 NSString atring nil or NSString astring 没有semant

随机推荐

  • 基于元素类的 Angular2 QueryList

    有没有办法找回ViewChildren or ContentChildren按元素类别 这可以通过 id 或组件工作 但不适用于基于类的查询 即classedViewItems and classedContentItems Compone
  • Sql Server CE是否支持MERGE语句

    我正在尝试运行MERGE查询针对Sql Server CE数据库 但它抛出错误 There was an error parsing the query 虽然相同的查询工作正常Sql Server is merge statement no
  • 循环遍历多个列并在 R 中为每个列绘制一个图?

    我有一个数据集 其中第一列是 年份 接下来的五十列是美国每个州的数据 我想在一个 pdf 中生成多个图 将每个 州 列与 年 列相匹配 即 1 和 2 1 和 3 1 和 50 我认为循环第 2 50 列将是一个很好的解决方案 但我无法让它
  • RESTful API 错误的最佳实践

    在 RESTful API 中返回 HTTP 状态代码的最佳实践是什么 我的 PHP 框架使用 Laravel 4 如果出现错误 我应该使用 return Response json User Exists 401 or 包括标志succe
  • 通过 mc.cores 与 makePSOCKcluster 设置核心?

    我想知道通过设置 R 使用的核心数有什么区别makePSOCKcluster并明确地在 foreach 循环中 我应该在这两种情况下单独设置它 还是在制作时这样做makePSOCKcluster enough cl lt makePSOCK
  • 了解 _.js 中下划线的声明吗?

    这是从一开始带注释的 js 来源 http documentcloud github io underscore docs underscore html 尽管我可以尝试 但我的 JavaScript 能力还不够高 无法理解这里发生的事情
  • Google Pubsub:不可用:该服务无法满足您的请求

    我正在使用 java 库从我的代码中订阅订阅 使用sbt com google cloud google cloud pubsub 0 24 0 beta 我按照本指南编写订阅者 https cloud google com pubsub
  • 是否可以集成 django-taggit 和 django-mptt / django-treebeard?

    我正在开发一个需要标记不同类型内容的网站 这有利于使用 django taggit 但是 如果标签以其自然层次结构在数据库中表示 这将非常有益 有利于使用 django mptt 或 django treebeard 将 taggit 的通
  • 将 UIToolbar 添加到某些文本字段的输入附件视图

    在我寻找我的第一个 iPhone 应用程序时 我发布了有关处理 iOS 键盘上的返回键的正确方法 现在我需要找出键盘上方的工具栏 其中包含上一个 下一个和完成按钮 我一直在使用以下网站的示例 输入配件视图 http gabriel tips
  • Flutter 从 Firebase 存储加载图像

    我看到有很多关于如何使用 flutter 将图像上传到 firebase 存储的示例 但没有实际下载 读取 显示已上传的图像 在Android中 我只是使用Glide要显示图像 我该如何在 Flutter 中执行此操作 我是否使用Netwo
  • 使用 Pandas 将 csv 转换为 Json

    我想使用 pandas 将 CSV 转换为 JSON 格式 我是一名测试人员 想要将一些事件发送到事件中心 因为我想要维护 CSV 文件并使用 CSV 文件更新我的记录 数据 我通过使用 pandas 读取 JSON 创建了一个 CSV 文
  • 将 Dropzone 中的文件添加到表单

    我想使用 Dropzone js 以便用户可以选择他想要上传的图像 但我不希望它们即时上传 而只是添加到表单中 然后以表单数组中的正常方式提交 我怎样才能做到这一点 我见过这样的问题如何让 Dropzone js 仅在单击提交按钮时上传文件
  • 在 SQLite 数据库中保存 ArrayList

    所以我想保存一组有序的双精度值 并且我希望能够轻松地插入 检索或删除其中的任何值 因此 我使用 ArrayList 在其中定义一个名为 Doubles 的类来存储双精度值 如何将此数组列表存储在 SQLite 数据库的记录中 我的意思是 列
  • 如何确定 Windows Java 安装位置

    我正在尝试从 C 程序集动态运行 jar 使用Process Start info 现在 我可以从控制台应用程序运行 ProcessStartInfo info new ProcessStartInfo java jar somerando
  • Debian Jessie 中的 Apache - 仍然收到消息您没有权限访问此服务器上的 /

    相同的虚拟配置我 apache wheezy 工作正常 例如 服务器名称 lgbs 服务器别名 www lgbs DocumentRoot home vdomain app web SetEnv APPLICATION ENV develo
  • Requests.get 显示的 HTML 与 Chrome 开发者工具不同

    我正在使用Python 特别是jupyter笔记本 开发一个网络抓取工具 它可以抓取一些房地产页面并保存价格 地址等数据 它对于我挑选的其中一个页面工作得很好 但是当我尝试抓取此页面时 sreality cz https www sreal
  • 按数字和字母顺序对带有字母的数字进行排序

    我的网站上有一个数据库 其中有一长串 产品 全部包含字母 例如 TC 345 TC 234 或 HC 236W 123 234 PWD 我们可以按数字和字母顺序对网站上的 进行排序吗 目前我们按字母顺序存储 因此顺序为 10 PDW 100
  • 正则表达式删除句子中包含数字的所有单词

    我尽力删除了句子中所有带有数字的单词 但仍然不成功 我什至尝试了以下正则表达式 regex s w 1 2 W s a zA Z0 9 d x preg replace regex x 我正在努力完成以下任务 包含数字和任何特殊字符 例如
  • Android、Windows Phone 7 和 Blackberry 的等效配置文件 (iOS)

    在 iOS 中 可以使用配置文件通过无线方式推送电子邮件 wifi 和 VPN 等的配置 有适用于 Android Windows Phone 7 和 Blackberry 的同等产品吗 链接到 iOS 的配置文件http develope
  • PhoneGap 与 jQuery Mobile 性能问题的常见来源有哪些?

    我有一个使用 PhoneGap 1 0 和 jQuery Mobile 1 0b2 编写的应用程序 在 iPhone 和 iPad 上运行 自从我开始使用该框架以来 我一直受到应用程序中 页面 之间切换的性能问题的困扰 按下按钮后 在转换发