我一直在使用 JQM 开发一个针对 iOS 和 Android 设备的网络应用程序。对于开发开始的大部分时间,我在桌面上使用 Chrome(当前为 v13)进行开发和测试。随着产品发布截止日期的临近,我增加了对物理 iOS 和 Android 硬件的测试;桌面和移动浏览体验之间的性能差异是巨大的。
客户端/服务器交互非常简单。客户端请求一组 View ,服务器返回这些 View 。然后客户端可以请求与特定 View 关联的节点集,服务器将在单个有效负载中返回这些节点。然后客户端从相应的 XML 为每个节点生成 DOM。
我已经开始使用 400kb 或大于 400kb 的 XML 负载进行测试。在桌面上,在 Chrome 中,这不是问题。在移动设备上,在 Mobile Safari 中,仅我的 DOM 加载时间就可能接近 12 秒。与 DOM 的交互(触发对 XML 的更新,缓存在 localStorage 中)每次点击最多可能需要 5 秒。
虽然我可以想出六种不同的方法来优化我的客户端/服务器通信——但我无法弄清楚如何衡量来自移动客户端的各个方法调用的开销。我知道 400k 的负载对于 iOS Mobile Safari 来说太多了,但我不知道我产生的性能成本是来自遍历 DOM 还是操作 XML。
如何从移动客户端的角度对我的移动网络应用程序进行指标分析?对桌面进行性能调整对我没有任何帮助,而且我在移动端没有等效的开发者控制台/FireBug。
其他移动开发者如何解决这个问题?
最佳答案
我决定添加一个简单的开始/停止记录按钮,它调用一个记录函数,该函数将方法计时数据存储在 sessionStorage 中。在停止记录时,我将其发送到 Web 服务以通过桌面浏览器进行分析。
编辑:我确实根据 this SO post 尝试了 JsLitmus | ,但我得出的结论是,在移动设备上真正重要的唯一性能测试是执行任何特定功能的时间。一旦我将这些信息从客户端导出,性能调整就变得微不足道了。
关于iphone - 如何对 jQuery Mobile iOS/Android Web 应用程序进行性能调优,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6380627/