zoukankan      html  css  js  c++  java
  • 高性能JavaScript

    使用事件代理

    有时候我们会感觉到页面反应迟钝,这是因为DOM树元素中附加了过多的事件句柄并且些事件句病被频繁地触发。这就是为什么说使用事件代理是一种好方法了。如果你在一个div中有10个按钮,你只需要在div上附加一次事件句柄就可以了,而不用去为每一个按钮增加一个句柄。事件冒泡时你可以捕捉到事件并判断出是哪个事件发出的。

    缓存选择器查询结果

    选择器查询是开销很大的方法。所以,使用选择器的次数应该越少越好,并且尽可能缓存选中的结果,便于以后反复使用。比如,下面这样的写法就是糟糕的写法:

    jQuery('#top').find('p.classA');
    jQuery('#top').find('p.classB');

    更好的写法是:

    var cached = jQuery('#top'); cached.find('p.classA'); cached.find('p.classB');

    避免频繁的IO操作

    对 cookie 与 localstorage 操作的API是同步的,且cookie与localstorage是多个tab页面间共享的,多页面同时操作时会存在同步加锁机制,建议应尽量少的对cookie或localStorage进行操作。

    避免频繁的DOM操作

    使用JavaScript访问DOM元素是比较慢的,因此为了提升性能,应该做到:

    1. 缓存已经查询过的元素;
    2. 线下更新完节点之后再将它们添加到文档树中;
    3. 避免使用JavaScript来修改页面布局;

    使用微类库

    通常开发者都会使用JavaScript类库,如jQuery、Mootools、YUI、Dojo等,但是开发者往往只是使用JavaScript类库中的部分功能。为了更大的提升性能,应尽量避免使用这类大而全的类库,而是按需使用微类库来辅助开发。

    转:http://www.alloyteam.com/2012/10/high-performance-front-end-high-performance-javascript/

  • 相关阅读:
    创建型模式
    C# 数据结构 单链表反转
    没有人能随随便便成功
    If you are a new test manager – From google testing blog
    数据库惊魂
    foreach中的隐式类型转换
    C# 点滴 枚举
    C# 面试题目 单链表中删除重复数据
    0909关于编译原理课程的认识
    0920编译原理第二次上机作业
  • 原文地址:https://www.cnblogs.com/leejersey/p/3510993.html
Copyright © 2011-2022 走看看