jQuery Or 原生JS?(问题探讨)
jQuery加载后有缓存机制,它的底层封装在内存中不会存在任何性能上的问题。jQuery重点在于DOM节点抽象层,其维护抽象层和提高抽象层代码性能也是具有独立性。
jQuery性能不次于原生js的性能,目前没有最本质的原生js,即使自己写原生js也需要写出抽象层兼容接口,从设计模式的角度考虑,API的设计方式有助于后期的统一维护和接口管理,而这一点jQuery已经给你做到。
分析jQuery的源码可以发现,sizzle的解析器只有在多级子选择器的时候正则解析较为复杂,普通的ID和Class以及Tag的捕获其函数实现已经达到最精简化,和自己写的无二甚至更优。
性能是考虑IO磁盘响应和浮点运算的时间,切不可跟代码量混为一谈,jQuery开发版的9440行代码只是占用内存和空间而已,被浏览器读入内存后,所需执行和计算的jQuery代码除了浏览器检测和一些常规的$符检测之外,其余都处于未调用状态,而大部分位于内存堆里等待后续接口的调用,何来加载开销大之说,仅是多了一条request,多了90kb的流量,如果以这个作为依据来否定jQuery的存在和实用价值或者性能的低下,那后面就没有再讨论的意义了。
一个7年的框架,他们的努力,他们不断的尝试提高性能,他们的不放弃,给前端入门甚至敏捷开发学者带来了乐趣甚至丰富的收入。而至今她仍然并坚定的存在着,它的好与不好,关键在于使用和理解他的人们。
不反对自己开发框架,但你要努力,你也要不放弃,你需要坚持,维护你的框架,挖了坑就要努力把它填上,不要让别人踩到你的坑又掉了下去或者自己掉了下去。
大公司开发框架装B只是一部分不能否定他不存在,但重点是大公司有实力去开发这个庞大的框架或者函数库系统,他们不怕挖坑,有人去填。而更重点我认为大公司的前端工程师们我相信这是他们的梦想,他们在实现梦想 —— 开发一套属于自己、属于团队的框架,因为公司给了他们这么好的条件、待遇、环境,导致他们有精力、有时间甚至有乐趣去开发这些框架。 而个人开发者或者小公司小团队—— 你的老板、你的同伴、你的工作环境、你的工作付出回报、源源不断的客户需求和订单可以导致你根本无法静下心来去开发真正的框架。
存在即合理,jQuery、原生js、自己的框架。。。。等等 都是在围绕前端、js、代码维护和性能来展开,那我们现在需要的是提高自身的js技术,提高自身对大前端的理解,在最合适的时机去用最合适的解决方案,那时,你相信会说:“你说怎样? 技术不是问题!” 做一个随性、浪漫、洒脱的前端工程师!