zoukankan      html  css  js  c++  java
  • 《javascript高级程序设计》 第24章 最佳实践 Best Practices

    24.1 可维护性 Maintainability
    24.1.1 什么是可维护的代码 What Is Maintainable Code?
    24.1.2 代码约定 Code Conventions 
    24.1.3 松散耦合 Loose Coupling
    24.1.4 编程实践 Programming Practices
    24.2 性能 Performance
    24.2.1 注意作用域 Be Scope-Aware
    24.2.2 选择正确方法 Choose the Right Approach
    24.2.3 最小化语句数 Minimize Statement Count
    24.2.4 优化DOM 交互 Optimize Dom Interactions
    24.3 部署 Deployment
    24.3.1 构建过程 Build Process
    24.3.2 验证 Validation
    24.3.3 压缩 Compression

     3. 解耦应用逻辑/事件处理程以下是要牢记的应用和业务逻辑之间松散耦合的几条原则:

     勿将event 对象传给其他方法;只传来自event 对象中所需的数据;
     任何可以在应用层面的动作都应该可以在不执行任何事件处理程序的情况下进行;
     任何事件处理程序都应该处理事件,然后将处理转交给应用逻辑。

    3.避免与null 进行比较
    如果看到了与null 比较的代码,尝试使用以下技术替换:
     如果值应为一个引用类型,使用instanceof 操作符检查其构造函数;  if (values instanceof Array)
     如果值应为一个基本类型,使用typeof 检查其类型;
     如果是希望对象包含某个特定的方法名,则使用typeof 操作符确保指定名字的方法存在于对
    象上。

    24.2.1 注意作用域
    1.避免全局查找
    var doc = document;
    var imgs = doc.getElementsByTagName("img");
    2. 避免with 语句

    24.2.2 选择正确方法
    1. 避免不必要的属性查找
    使用变量和数组要比访问对象上的属性更有效率,后者是一个O(n)操作。

    24.2.3 最小化语句数
    //用4 个语句创建和初始化数组——浪费
    var values = new Array();
    values[0] = 123;
    values[1] = 456;
    values[2] = 789;

    //只用一条语句创建和初始化数组
    var values = [123, 456, 789];

    24.2.4 优化DOM交互
    var list = document.getElementById("myList"),
    fragment = document.createDocumentFragment(),

    for (i=0; i < 10; i++) {
    item = document.createElement("li");
    fragment.appendChild(item);
    。。。
    2. 使用 innerHTML

    3. 使用事件代理
    任何可以冒泡的事件都不仅仅可以在事件目标上进行处理,目标的任何祖先节点上也能处理。使用这个知识,就可以将事件处理程序附加到更高层的地方负责多个目标的事件处理。

    4. 注意HTMLCollection
    避免在循环体内多次调用HTMLCollection。
    var images = document.getElementsByTagName("img"),
    image,
    i, len;
    for (i=0, len=images.length; i < len; i++){
    image = images[i];
    //处理
    }

    24.3.3 压缩
    1. 文件压缩
    2. HTTP 压缩

  • 相关阅读:
    如何解决UITextField挡住键盘的问题
    设置UITextField中能输入的最大的字数
    如何判断IOS的设备版本型号
    IOS中如何实现对话聊天
    精美的iOS图片欣赏
    关于IOS 应用图标的设置
    ios7中添加多个按钮
    elementary0.4:快速配置工具
    elementary:网易云音乐白条解决
    deepin下eclipse快捷方式
  • 原文地址:https://www.cnblogs.com/della/p/3296444.html
Copyright © 2011-2022 走看看