• titanium编程最佳实践


    appcelerator认可的移动开发标准是在titanium开发跨平台指定单上下文,模块化,好的结构化代码,好的有组织的资源管理。通过遵循这些标准,开发人员将创建应用程序,满足前面的清单的稳定、快速、高效、可读的。

    javacript和一般建议

    避免全局作用域

    把对象放到全局作用域有出现各种各样的问题!

    • 对象放在全局作用域将不能自动执行垃圾回收,你必须自己手动把全局对象设为null,标记他们准备回收。
    • 它很容易就会覆盖一个对象在全局作用域内,因为该变量是在程序里到到处可以访问。
    • 在app.js里的全局对象在其他上下文或者在CommonJS模块里是不容易访问得到的。你不能只是转储变量,所以你可以在你的应用程序访问它们。

    避免在全局作用域里定义变量。如果非要在全局作用域里定义变量,可在以下情况考虑:

    • 你声明一个变量在CommonJS之外的函数或模块。使用模块化模式将缓解这个问题。
    • 省略了var关键字在声明变量(内部或外部的一个函数)。所以总是使用var当声明变量。

    避免声明局部对象在全局作用域里的事件监听器

    下面的代码将会导致内存泄漏,因为局部作用域的变量中引用一个全局事件侦听器。这是因为该程序将需要保留本地范围var为了全球事件监听器来使用它们。全球事件监听器也会一直持续,直到应用程序退出或侦听器是显式地删除。

    var someFunction = function() {
        var table = Ti.UI.createTableView(),
            label = Ti.UI.createLabel(),
            view = Ti.UI.createView();
    
    
        Ti.App.addEventListener('bad:move', function(e) {
            table.setData(e.data);
        });
    
        view.add(table);
        view.add(label);
    
        return view;
    };

    全局事件监听器包括那些与Ti.App、Ti.Geolocation、Ti.Gesture等等。同样的问题是可能的和非全局事件监听器,就像那些你联想到一个UI元素。如果UI元素仍然是有效的在内存中,任何事件监听器——和对象引用,也必须保存在内存中。

    上面的例子是一个反模式,最终消费应用程序的可用内存。重要的是要注意,这是一个常见的反模式,开发人员使用基于浏览器的环境ti,它会导致同样的结果,所以这不是独特的ti。

    如果你需要一个定制事件,考虑一个方法/回调,你可以稍后调用。对全球事件(如位置、网络变化等等,这是强烈建议将它们放在app js。这个一般的经验法则是全球事件处理全局对象。

    延迟脚本加载

    瓶颈之一的ti应用程序是JavaScript评价。这是特别为Android的案例,尽管V8的运行时提供了大量的改进,这个问题与犀牛。出于这个原因,来加快应用程序的启动和响应能力,你应该避免加载脚本,直到他们是绝对需要的。如以下应用程序,其中包含有三个窗口是打开纷纷在点击(触摸)事件中,注意,依赖JavaScript为每个窗口是不会加载到绝对必要。

  • 相关阅读:
    经典SQL语句大全
    jQuery.fn.extend与jQuery.extend到底区别在哪?
    JQuery.Ajax()的data参数类型
    浅谈数据库去重
    .net Session 详解
    50个必备的实用jQuery代码段
    jQuery 选择器大全
    细说static关键字及其应用
    OVER(PARTITION BY)函数用法
    eos超时 锁表问题 网友办法
  • 原文地址:https://www.cnblogs.com/xiaozhanga4/p/2712918.html
Copyright © 2020-2023  润新知