Author: 李丽媛

Date: 2010/6/2

Email: lly219#gmail.com

2 JavaScript 优化方案

2.1 测试驱动开发

为了编写可维护的 JavaScript,测试驱动是必不可少的。因为每个测试都起到质量反馈的作用,给后期维护和修改创建了一个安全保护网并提供了一份可执行的文档。通过测试,我们可以保证所有的功能被覆盖,也避免了重写代码后再进行测试的高昂代价。

解决方案:以后的开发中使用 JsUnit JSMock 进行测试驱动。

2.2 框架

现在已经形成部分框架,但都不够复用和抽象。并且缺少文档说明,让后期开发人员很难进行维护和使用。

解决方案:对框架进行封装、抽象、改进,并且完善文档。

2.3 文件压缩( YUI Compressor

a) 移除注释

b) 移除额外的空格

c) 细微优化

d) 标识符替换

解决方案:代码发布时,使用以上压缩工具进行压缩。

2.4 使用 JSON

JSON是一种轻量级的数据格式,体现在它的结构定义非常简单,而且已成为当今 Web 端的主流数据格式标注。

解决方案:把能更改为 JSON 数据格式的数据尽量进行更改。

2.5 浏览器兼容

Web 时代,主流浏览器兼容是必须的。而且当IE 9 来到时,向下兼容可能会出现一些问题。时代在发展,Google都摈弃了 IE6 既然都有权要求用户使用 IE 浏览器,为何不能要求用户对浏览器升级,或满足使用其它浏览器的用户呢?

解决方案:更改代码,使其兼容主流浏览器。

2.6 使用一些提高 JavaScript 效率的基本常识方法

a) 使用三元操作符代替 if…else…

b) 减少 DOM 访问;

c) 尽量使用 switch

d) 简化常用对象定义(var obj= {}; 代替 var obj = newObject(););

e) 避免使用Eval

f) 尽量使用语言本身的构造和内建函数;

g) 对高级对象采用缓存;

h) 避免过多的应用层次和不必要的方法调用。

解决方案:编写代码过程中遵循以上方法。

2.7 代码的可读性

是程序员都可以写出机器可读的代码,但是要做一名好的程序员就必须写出人类可读的代码。

解决方案:在需要的地方增加注释;降低代码的层次嵌套;遵循代码的重用规则;规范命名等等;。

2.8 常量和全局变量

JavaScript 文件较多,里面的常量和全局变量过杂过乱。

解决方案:常量单独放到一个 js 文件中进行定义和管理;全局变量应有详细的文档说明。

2.9 查找瓶颈

a) 局域网不慢,互联网慢则为加载慢;

b) Chrome 不慢,IE 慢则为渲染慢;

c) 越用越慢则为内存泄露。

解决方案:针对 a) 可对文件进行压缩;动态加载;加载提示。针对b) 可缓存经常用到的节点查询结果;注意 DOM 的刷新;减少加载减少解析;晚加载晚解析。针对b) 可参见:JS内存泄露

2.10 split 应使用 ascii

看到分割的时候使用了一些常用的字符,这样当字符串中出现该字符时,就会产生影响。

解决方案split 分割时使用 ascii 码。

2.1114Rules for Faster-Loading Web Sites

解决方案:根据实际情况选择适合的规则,逐一改进。


3.图片优化方案

3.1. 规范命名

a) 命名有意义,让人一看便知;

b) 按标准分类,放入相应的文件夹中。

解决方案:对图片重新进行整理,重命名,重新分类,重新切片。牵扯到的 CSS JavaScript 也一律进行修改。

3.2. 图片压缩

解决方案:由美工进行修改。

3.3. 格式统一,可按照需求使用 gif jpg

解决方案:由美工进行修改。

更多相关文章

  1. javascript 的MD5代码备份,跟java互通
  2. 这些年,我收集的JavaScript代码(二)
  3. 确保代码在*之后执行*对监视属性的更改已在UI中生效
  4. 如何用NodeJS组织构建、服务器、客户端和共享JavaScript代码
  5. 如何在Node中创建可重用的函数而不编写样板代码
  6. arcgis api for js入门开发系列十 自定义Navigation控件样式风格
  7. 五十行javascript代码实现简单的双向数据绑定
  8. 在内容可编辑DIV中的选定文本周围包装bb代码
  9. 等待执行所有ajax回调的最佳解决方案

随机推荐

  1. 关于mysql无法添加中文数据的问题以及解
  2. MySQL学习笔记_时间,多表更新,数据库元数据
  3. 如何在MYSQL中选择下面的项目和上面的项
  4. web项目异常A web application registere
  5. centos设置mysql root密码
  6. MySQLWorkbench 创建E-R图步骤
  7. 按多列排序行选择
  8. mysql中插入中文时显示乱码
  9. org.hibernate.hql.internal.ast.QuerySy
  10. mysql数据库连接查询