zoukankan      html  css  js  c++  java
  • 依照百度前端规范对项目里部分代码的重构

    1.不要用document.write输出js文件(对应百度前端规范14.2节)

    重构前

    在管理学院项目里面,我们为了方便JS组件的调用,并且在换组件的时候无需修改相应的html或模板.,对JS组件进行了模块划分,写了一个输出JS的工具JS,如下

     

    百度前端规范

    切勿以document.write输出静态js引用的方式上线!在IE下,document.write无法保证脚本加载的时序性。

    重构后

    在留学生教务系统里面,我们沿用了EEP的输出JS的工具类:JQueryLoader,保证了js输出的时序性,管理了js直接的依赖关系,并且也有了查重的功能。

     

    2.全局变量冲突(对应百度前端规范15.1节)

    重构前

    在我们所写的js页面里,很多都是直接写本页的js代码

     

    百度前端规范

    由于环境的未知性,所有暴露的全局变量都可能产生危险.我们应该使用function隔离作用域.

    重构后

    利用闭包和立即函数,包裹自己写的JS,避免命名冲突

     

    3.行字符限制(对应百度前端规范1.3节)

    重构前

    一般我们是这样写逻辑判断语句的

     

    百度前端规范

    每行的字符数建议不超过100个字符。

    过长的程序行应在适当的地方断行,并保持断行后的代码整齐。断行不要破坏表达式本身的意义。

    重构后

     

    4.字符串拼接(对应百度前端规范9.1节)

    重构前

    在实验室开发项目时,一般是这样拼接字符串的:

     

    百度前端规范

    字符串拼接,应使用数组作为StringBuffer保存字符串片段,使用时调用join方法。避免使用++=的方式拼接较长的字符串,每个字符串都会使用一个小的内存片段,过多的内存片段会影响性能。绝大部分现代浏览器都对+=的字符串拼接进行了优化,但IE6的使用率依然很高

    字符串拼接:更好的拼接方式,Array,使用临时变量存储数组长度

    var str = [], strLen = 0;

        for (var i = 0, len = list.length; i < len; i++) {

            str[strLen++] = '<div>' + list[i] + '</div>';

        }

        dom.innerHTML = str.join('');

    重构后

     

    5.倒序遍历(对应百度前端规范10.3.2节)

    重构前

    在实验室项目中我们一般是这样遍历数组的:

     

    百度前端规范

    当遍历的顺序无关时,建议使用倒序遍历。查找匹配项并删除时,应使用倒序遍历。

    重构后

     

    6.清空字符串(对应百度前端规范10.2.2节)

    重构前

    之前我们一般认为清空字符串是这样的:

     

    百度前端规范

    我们可以设置数组的length0来清除数组的所有项。

    重构后

    赋值为一个空数组以达到清空原数组 这里其实并不能说是严格意义的清空数组,只是将ary重新赋值为空数组,之前的数组如果没有引用在指向它将等待垃圾回收.

     

  • 相关阅读:
    Struts tags--Data tags
    Java NIO学习笔记七 Non-blocking Server
    Java NIO学习笔记六 SocketChannel 和 ServerSocketChannel
    Java NIO学习笔记五 FileChannel(文件通道)
    Java NIO学习笔记四 NIO选择器
    Java NIO学习笔记 三 散点/收集 和频道转换
    SpringMVC接收集合页面参数
    JAVA NIO学习笔记二 频道和缓冲区
    Java NIO学习笔记一 Java NIO概述
    通过举例了解java中的流
  • 原文地址:https://www.cnblogs.com/web100/p/baidu-js.html
Copyright © 2011-2022 走看看