`
newUserForTest
  • 浏览: 8797 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
最近访客 更多访客>>
社区版块
存档分类
最新评论

javascript 事件的一点认识

阅读更多
不知不觉写了两年的javascript(比较怀念写java的日子),用过jquery和mootools。关于这两个框架的对比也看过不少,之前一直也想说些什么,现在就不想这样做了,因为一定要说有区别的话那就是编码的样子不是很一样,mootools是扩展式的,入侵原生属性,你一加载就穿了装备,随时候命,调用方便;jquery是外挂式的,你来我才给你装备,不来你还是你,感觉会比较轻。你要是说mootools太拖拉,只是想拉屎也带整套装备,不也是图个方便,你敢说用jQuery就很少用到$吗,jQuery的$就是穿装备。

不要跑题,马上来说event,javascript事件,javascript事件有两种方式实现,一种是直接写在html里面类似onclick=xxx;一种是attachEvent或addEventListener(ie和ff不一样),可以认为是绑定在节点上(这里说的节点是指dom对象,后同)。

我是这样想的,节点的事件有两种映射方式存在,当你点击节点的时候,浏览器会扫描节点的onclick属性,然后eval这个属性的值(可能不是eval,而是浏览器底层的其他接口,反正类似),这样看来,这个映射他是不存在的,每次点击的时候扫描;另外会去一个特定的地方(内存)寻找是否存在映射到其他js函数,这里因为我们在html里面看不到事件,有理由认为这是存放在内存里面,当你attach或者add一个event之后一定在内存里面存放了映射提供给浏览器扫描。所以我认为,使用onclick的方式不占内存或者说比较小,但是可能扫描的性能方面会差点(纯属yy),最重要的是管理起来麻烦;使用add方式(就这样叫了),类似拉了一条线在节点和函数之间,而且这条线是一直存在的,占内存,好处是脱离html,好管理。

这里说说ie的问题,查过一些资料说,ie的gc是很差的,当你删掉一个节点的时候,你add进来的事件ie是不管的,类似拉屎,ie就是一个马桶你按了下冲水,他会把你拉的屎清理,但他是不会帮你差屁股的,ie不会帮你回收那条线,原因可能是ie太老了,以前只是被设计成一个粪池,只是负责装屎(如果觉得太恶心,请回复发泄一下)。ie内存泄露根本原因。jquery的data和mootools的store方法估计也会因此而泄露。所以说ie恶心。

在这里呼吁一下,如果你的浏览器还是ie6的话请你更新至新的版本(或者换其他新的浏览器)。

先这样,很少写这么无聊的技术。
分享到:
评论

相关推荐

    javascript页面加载完执行事件代码

    在当今互联网应用开发中,JavaScript作为前端开发的核心技术之一...通过本文的介绍和代码示例,读者应该能够对如何在JavaScript中处理页面加载完毕后的事件有了一个全面的认识,并能在此基础上应用到实际的项目开发中。

    深入认识JavaScript中的函数

    ### 深入认识JavaScript中的函数 #### 一、引言 在JavaScript中,函数不仅是编程的基本构建块,还是一种非常强大的工具,用于实现模块化的编程。与许多其他编程语言不同,JavaScript中的函数被视为对象,这使得它们...

    If Hemingway Wrote JavaScript.pdf

    这一点可以类比到编写JavaScript代码时,强调使用清晰简洁的语法和结构,尽可能减少冗余和复杂性,以提高代码的可读性和性能。 书中的核心知识点,即“同种功能的不同实现方法”,在JavaScript中尤为突出,因为...

    javascript eval函数深入认识

    在深入讨论之前,我们首先要明确一点:`eval` 的使用应当谨慎,因为它可能导致安全风险,例如执行恶意代码,同时也可能对性能产生负面影响。 ### 1. `eval` 函数的用法 `eval` 接收一个参数,该参数可以是任何类型...

    初学js者对javascript面向对象的认识分析

    这一点为函数式编程和高阶函数提供了便利,允许开发者编写更加模块化和灵活的代码。在示例中,`clickMe`函数就是一个高阶函数,它接收DOM元素作为上下文,并允许在被点击时执行。 综上所述,JavaScript初学者通过...

    利用html、css、javascript、php同时交互数据库制作的注册登录界面

    【标题】:“利用html、css、javascript、php同时交互数据库制作的注册登录界面” ...通过这个项目,开发者可以深入理解Web应用的工作原理,提升前后端协同开发的能力,并对数据库管理和安全防护有更直观的认识。

    Forseti:Javascript 测试规范运行程序

    虽然,我们认识到这一点的重要性 - 我们对此有不同的看法,并表示我们希望在编写 JavaScript 代码时针对 99% 的使用进行优化,而不是优化在真实浏览器上运行的场景。 考虑到这一点,Forseti 直接使用 JavaScript ...

    javascript各浏览器中option元素的表现差异

    本文档聚焦于在各个主流浏览器中,`option`元素在JavaScript事件处理、事件源目标获取、以及特定属性支持方面所呈现的表现差异。 首先,文档提到了在IE6/7/8/9版本中,`option`元素对某些JavaScript事件如`click`和...

    深入理解JavaScript系列(13) This? Yes,this!

    总之,理解JavaScript中的this关键字需要对执行上下文、函数调用方式、以及函数如何被定义和使用有深入的认识。通过本文对this关键字的分析,我们可以得到一个更加清晰和全面的理解,并在实际开发中更加自如地运用。

    JS根据浏览器窗口大小实时动态改变网页文字大小的方法

    通过上述内容的学习,我们可以了解到JavaScript动态调整网页文字大小的技术细节,同时也能认识到JavaScript在前端开发中的广泛应用和强大功能。这对于想要提升自己在Web开发方面能力的开发者来说,是一份非常有价值...

    js活用事件触发对象动作

    在这段描述中,主要的知识点涉及到了JavaScript编程中事件处理机制的优化,以及如何避免在多个对象中重复编写相似的事件处理逻辑,从而达到代码复用和避免冗余的目的。具体到代码实现,涉及到的编程技术点主要包括:...

    深入学习 JavaScript中的函数调用

    希望通过以上的深入探讨,大家能够对JavaScript中的函数调用以及参数传递方式有更清晰的认识。在编写代码时,对于基本数据类型和引用数据类型应采用不同的处理策略,尤其是在涉及到对象和数组这类引用类型时,更要...

    JavaScriptix - OO Javascript Repository-开源

    JavaScriptix 实现了这一点,每个类库文件都是一个模块,具有自己的作用域,防止变量冲突,同时允许开发者按需导入所需功能,降低代码耦合度,提高可维护性。 在 JavaScriptix 中,良好的文档是另一个重要特性。...

    无涯教程(LearnFk)-Node.js教程离线版.pdf

    在开始使用Node.js编写基于Web的应用程序之前,开发者应至少对JavaScript语言有一定的了解,并且对其他Web技术如HTML、CSS、AJAX等有基本的认识。Node.js不强制依赖于传统的HTTP服务器软件如Apache HTTP Server或IIS...

    锋利的jQuery

    一年前我认识了jQuery,从此就二发不可收拾。 曾经有朋友问我为什么最终选择jQuery,也许是jQuery给我的第一印象非常好的原因吧。它非常容易上手,大部分思想都是从HTML和CSS的结构中借鉴而来的,所以编程经验不多的...

    c#程序员对TypeScript的认识过程.docx

    TypeScript 强大的一点在于其类型系统,提供了静态类型检查,这有助于在编码阶段发现错误。此外,TypeScript 支持接口(Interfaces),可以用来定义对象的结构,类似于 C# 中的接口。泛型(Generics)是另一大亮点,...

    认识延迟时间为0的setTimeout

    JavaScript中的`setTimeout`函数是异步执行机制的关键组成部分,它被广泛用于安排代码在未来的某个时间点...在编写JavaScript代码时,理解这一点有助于我们更好地优化代码执行顺序,解决因单线程模型引发的同步问题。

    百度地图使用方法

    此外,百度地图API还提供了路线规划、地理编码、覆盖物、事件监听等多种功能。例如,你可以使用`BMap.DrivingRoute`类来实现驾车路线规划: ```javascript var driving = new BMap.DrivingRoute(map, { ...

    找到一点可怜的关于dojo资料,谢谢作者!

    “不过这里有个机会让你认识到其实你的知识并不是那么扎实,还有很多基础的东西需要学习。 当 我们给人们介绍dojo的时候,遇到了两种难题。有些用户已经使用DHTML很久,并且对javascript有了很深的理解,他们清楚 ...

    jQuery-in-Action.part1.pdf

    本节可能会探讨如何通过jQuery实现这一点。 - **1.3 jQuery基础** 这一节是全书的重点之一,包括以下几个方面: - **jQuery包装器**:介绍jQuery是如何将DOM元素封装成一个对象的,这样可以方便地进行链式调用...

Global site tag (gtag.js) - Google Analytics