`
小熊2号
  • 浏览: 15040 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Titanium性能优化:延迟加载DatePicker提高界面打开速度

阅读更多
其实不算是性能优化了,顶多算矛盾转移:我在开发中发现,Titanium的DatePicker和TimePicker,初始化比较费时间。如果刚好在创建windows时初始化这两个Picker,window打开的速度会被严重拖累,造成难以忍受的性能问题。
比如下面的代码,相信各位看官不会陌生:
function RankWindow() {
  var mainWnd = Ti.UI.createWindow(...);
  ...
  var datePicker = Titanium.UI.createPicker(...);
  mainWnd.add(datePicker);
  ...
  return mainWnd;
}

...

module.exports = RankWindow;

我刚开始一厢情愿的是:不管多慢,只要RankWindow初始化了:
  var RankWindow = require('/RankWindow');
  var rankWnd = new RankWindow();

那我
rankWnd.open();
,就会瞬间打开。

实际情况是:rankWnd.open()时,严重卡顿。我一个界面,20个控件,其中有4个picker,打开时间竟然高达1.5秒!

经过观察发现,似乎rankWnd.open的时候,才会去真正地调用createPicker!原因不清楚,只知道严重违反了“想当然”。发了这个帖子在官方论坛http://developer.appcelerator.com/question/151937/window-not-initialized-until-it-is-open,希望知道的同学告诉我!

解决办法呢,就是把createPicker这样的操作,延迟到事件处理函数里面来执行。这样以来虽然打开picker时还有一点卡顿,但是总比4个picker叠加在一起,导致主窗口需要1.5秒钟打开要强多了!
分享到:
评论

相关推荐

    Titanium-WebClient:Appcelerator Titanium Web服务客户端

    Titanium-WebClient在设计时考虑了性能优化,如缓存策略、批量请求等特性,可以帮助开发者减少网络负载,提高应用的响应速度。 8. **版本控制** 作为开源项目,Titanium-WebClient会有持续的更新和维护,开发者...

    Titanium.ImageCache:Commonjs模块为Titanium SDK缓存图像

    Titanium.ImageCache是一个专门为Titanium SDK设计的CommonJS模块,其主要目的是优化应用程序的性能,特别是在处理大量图像加载时。这个模块提供了一种高效的图片缓存机制,避免了每次需要显示图片时都从网络下载,...

    titanium-typescript:TypeScript 的 Titanium Mobile 类型

    Titanium Appcelerator API v3.1.3.GA 的环境声明。 var ROWS: number = 10; var children: Array<Titanium> = button.getChildren(); var window: Titanium.UI.Window = Titanium.UI.createWindow({ title: '...

    ionic4-datepicker:Ionic 4 Datepicker组件

    Ionic4日期选择器 请检查此博客以获取有关文档 这是它的样子 1.0.8版中的重大更改 由于date formate dd-MM-yyyy ,我们使用了momentjs来解决它。 我们将不再使用有角度的...rajeshwar patlolla的Ionic1 Datepicker

    titanium_samples:钛样品采集

    7. **性能优化**:通过示例学习如何优化代码,提高应用性能,减少资源消耗。 8. **调试和测试**:了解如何使用Titanium的调试工具进行问题排查,以及如何编写单元测试和集成测试。 9. **版本控制**:如果涉及到Git...

    ios-parse-titanium-module:iOS Parse.com Titanium 模块

    用于 Appcelerator Titanium 的 iOS Parse.... 在 Titanium.xconfig 中设置正确的 Titanium SDK 版本: TITANIUM_SDK_VERSION = 3.2.3.GA 然后通过运行编译 ./build.py 在项目根目录中安装创建的 zip 文件 (com.e

    generator-titanium-commonjs:用于 commonjs Titanium 模块的 Yeoman 生成器

    Appcelerator Titanium CommonJS 模块的基于的生成器。 入门 首先确保安装了 yo 和 和 生成器: $ npm install -g yo generator-titanium-commonjs 您可能需要具有 sudo 权限才能全局安装。 之后,您可以通过创建...

    titanium-platforms:Titanium:trade_mark:SDK实用程序,用于设备条件代码

    Titanium:trade_mark:SDK实用程序,用于设备条件代码。 用法 仅在包模式和与一起使用。 如果您使用的是Alloy,则只需使用。 安装 $ npm install --save titanium-platforms ECMAScript 5 var OS_ANDROID = ...

    前端开源库-faster-titanium.zip

    在这个场景下,"Faster Titanium"可能是一个优化前端性能的工具或库,旨在提高网页加载速度,提升用户体验。 1. **JavaScript框架和库**:在现代前端开发中,JavaScript框架和库如React、Vue.js和AngularJS等,极大...

    titanium 打开本地网络

    在涉及到“titanium 打开本地网络”的话题时,我们主要关注的是如何在Titanium应用程序中检测和管理本地网络状态。 一、Titanium的网络检测 在Titanium中,可以使用`Ti.Network`模块来检查设备的网络状态。这个...

    titanium_sdk:这是的Titanium SDK

    这是Adjust:trade_mark:的Titanium SDK。 您可以在阅读有关Adjust:trade_mark:的更多信息。 目录 Google Play商店意图 华为Refererer API iOS框架 附加的功能 AppTrackingTransparency框架应用程序跟踪授权包装 ...

    titanium-bluetooth::satellite_antenna:对Axway Titanium SDK的本机iOS Android蓝牙支持

    Appcelerator Titanium中的蓝牙 概括 Ti.Bluetooth是一个开放源代码项目,旨在支持Appcelerator Titanium中的Bluetooth / BLE。 要求 适用于Android的Titanium SDK 7+ 适用于iOS的Titanium SDK 8+ iOS 10.0以上/ ...

    titanium-essentials:Titan适用于Titanium Turbo本机移动应用程序的基本工具包

    Titanium Turbo本机移动应用程序必备工具包 :books: 相关项目 :admission_tickets: 钛合金手机模块 :admission_tickets: Node.js和Titanium Mobile的模块 :admission_tickets: Node.js的模块 :...

    titanium-sac:用于Sublime Text 3的Titanium插件

    用于Sublime Text 3的Titanium Appcelerator插件 该插件提供了许多功能来帮助生成Titanium Project和Alloy Components。 您可以使用该插件创建Classic和Alloy项目,该插件还会自动创建一个新的Sublime项目并打开它...

    titanium-crashlytics:使用Titanium(iOS Android)中的本机Crashlytics SDK

    Appcelerator Titanium中的Crashlytics 使用Appcelerator Titanium中的本机Fabric Crashlytics iOS / Android SDK。 支持这项工作 @hansemannn的整个Firebase支持由社区( @hansemannn和@m1ga )开发和维护。 为了...

    titanium-weixin:Titanium的微信支付模块

    钛微信Titanium 的微信支付模块。 现在仅支持android。 我会尽快添加 iOS 支持。用法git clone ...

    titanium-socketio:将本机Socket.io SDK与Axway Titanium一起使用

    Titanium的Socket.io客户端使用本地Android和iOS客户端的Titanium的模块。要求 Android:Titanium SDK 7.0.0+ iOS:Titanium SDK 7.4.0 + / Xcode 10.2 / Swift 5.0+ :light_bulb: iOS模块是使用Swift 5.0构建的,您...

    Titanium Mobile SDK 3.1.0 Apidoc 离线版

    2. **原生性能**:尽管基于JavaScript,但Titanium通过运行时转换将代码编译为原生应用程序,提供了接近原生应用的性能。 3. **API支持**:Titanium提供了丰富的API,涵盖了设备访问、用户界面构建、网络通信、数据...

    adwords_conversion_tracking_titanium_module:Google Adwords转化跟踪Titanium模块

    **谷歌AdWords转化跟踪Titanium模块** 谷歌AdWords转化跟踪是一项关键的在线营销工具,它允许广告主衡量广告活动的效果,特别是关注用户在点击广告后是否完成了特定目标,如购买商品、填写表单或下载应用。这个...

    titanium-formvalidator:钛合金现场验证

    JavaScript作为客户端脚本语言,常常用于网页交互,而这个工具的出现,使得在用户界面上进行实时验证成为可能,提高了用户体验,同时也减轻了服务器端的验证负担。 在实际应用中,"钛合金现场验证"提供了多种验证...

Global site tag (gtag.js) - Google Analytics