一、什么是 jQuery

  1、jQuery是一个JavaScript库,jQuery 极大地简化了 JavaScript 编程。它通过封装原生的JavaScript函数得到一整套定义好的方法。

  2、它的作者是John Resig,于2006年创建的一个开源项目,随着越来越多开发者的加入jQuery已经集成了JavaScript、CSS、DOM和Ajax于一体的强大功能。

  3、它可以用最少的代码,完成更多复杂而困难的功能,从而得到了开发者的青睐。主旨:以更少的代码、实现更多的功能

二.jQuery 的版本

  2005 年 8 月开始,进入公共开发阶段,于 2006 年 1 月 14 日正式以 jQuery 的名称发布。

  2006 年 8 月发布了 jQuery1.0,第一个稳定版本,具有对 CSS 选择符、事件处理和Ajax 交互的支持。
  2007 年 1 月发布了 jQuery1.1,极大的简化 API。合并了许多较少使用的方法。
  2007 年 7 月发布了 jQuery1.1.3,优化了 jQuery 选择符引擎执行的速度。
  2007 年 9 月发布了 jQuery1.2,去掉了 XPath 选择器,新增了命名空间事件。
  2008 年 5 月发布了 jQuery1.2.6,引入了 Dimensions 插件到核心库中。
  2009 年 1 月发布了 jQuery1.3,使用了全新的选择符引擎 Sizzle,性能进一步提升。
  2010 年 1 月发布了 jQuery1.4,进行了一次大规模更新,提供了 DOM 操作,增加了很多新的方法或是增强了原有的方法。

  2010 年 2 月发布了 jQuery1.4.2,添加了.delegate()和.undelegate()两个新方法,提升了灵活性和浏览器一致性,对事件系统进行了升级。
  2011 年 1 月发布了 jQuery1.5,重写了 AJAX 组件,增强了扩展性和性能。
  2011 年 5 月发布了 jQuery1.6,重写了 Attribute 组件,引入了新对象和方法。
  2011 年 11 月发布了 jQuery1.7,引入了.on()和.off()简介的 API 解决事件绑定及委托容易混淆的问题。
  2012 年 3 月发布了 jQuery1.7.2,进行一些优化和升级。
  2012 年 7 月发布了 jQuery1.8,8 月发布了 1.8.1,9 月发布了 1.8.2,重写了选择符引擎,修复了一些问题。
  2013 年 1 月发布了 jQuery1.9,CSS 的多属性设置,增强了 CSS3。
  2013 年 5 月发布了 jQuery1.10,增加了一些功能。(支持IE6,7,8)
  2013 年 4 月发布了 jQuery2.0,5 月发布了 jQuery2.0.2,一个重大更新版本,不在支持 IE6/7/8,体积更小,速度更快。

三.jQuery 的功能和优势

  jQuery 作为 JavaScript 封装的库,他的目的就是为了简化开发者使用 JavaScript。主要功能有以下几点:
    1、像 CSS 那样访问和操作 DOM
    2、修改 CSS 控制页面外观
    3、简化 JavaScript 代码操作
    4、事件处理更加容易
    5、各种动画效果使用方便
    6、让 Ajax 技术更加完美
    7、基于 jQuery 大量插件
    8、自行扩展功能插件
  jQuery 最大的优势,就是特别的方便。比如模仿 CSS 获取 DOM,比原生的 JavaScript要方便太多。

  并且在多个 CSS 设置上的集中处理非常舒服,而最常用的 CSS 功能又封装到单独的方法,感觉非常有心。

  最重要的是 jQuery 的代码兼容性非常好,你不需要总是头疼着考虑不同浏览器的兼容问题。

四、其他 JavaScript 库

  目前除了 jQuery,还有 5 个库较为流行,他们分别是 YUI、Prototype、Mootools、Dojo和 ExtJS。
    YUI:是雅虎公司开发的一套完备的、扩展性良好的富交互网页工具集。
    Prototype:是最早成型的 JavaScript 库之一,对 JavaScript 内置对象做了大量的扩展。
    Dojo:Dojo 强大之处在于提供了其他库没有的功能。离线存储、图标组件等等。
    Mootools:轻量、简洁、模块化和面向对象的 JavaScript 框架。
    ExtJS:简称 Ext,原本是对 YUI 的一个扩展,主要创建前端用户界面。(付费的)

五、是否兼容 IE 低版本项目中是否兼容IE低版本的规则)

  这次 jQuery 发布了大版本 2.x.x,完全放弃兼容 IE6/7/8。不单单如此,很多国际上的大型站点也开始逐步不再支持 IE6/7/8。

  但对于国内而言,比较大型的网站最多只是抛弃 IE6,或者部分功能不支持 IE6 的警示框,还没可能一下子把 IE6/7/8 全面抛弃。

  完全不支持的做法:就是检测到是否为 IE6 或者 IE6/7/8,然后直接跳转到一个信息错误界面,让你更换或升级浏览器,否则无法访问使用。

  部分功能不支持的做法:就是判断你是 IE6 或 IE6/7/8,然后给一个警示条或弹窗,告诉你使用此款浏览器性能降低或部分功能使用不正常或不能使用的提示,但还可以访问使用。

  1、成本控制
    很多项目往往在 6、12、18、32...个月就会发生财务问题,比如资金紧缩甚至断裂。所以,成本控制尤为重要。

    项目如果不是老站升级,也不是大门户的新闻站,成本控制和尽快上线测试才是最重要的。而如果新站一味要求全面兼容,会导致成本加剧(随着功能多少,成本倍率增加)。

    为了锁紧时间,就不停的加班再加班,又导致员工抵触,工作效率降低,人员流动开始频繁,新员工又要接手开发一半的项目。这样成本不停的再累加。最终不少项目,根本没上线就失败了。

  

  2、用户选择
    用户一般可以分为两种用户:高质量用户和低质量用户。

    所谓高质量用户,就是为了一款最新的 3D 游戏去升级一块发烧级的显卡,或直接换一台整机。

    所谓低质量用户,发现不能玩最新的 3D 游戏,就放弃了,去玩“植物大战僵尸”解解馋算了。

    在用户选择上有一个很好的案例,就是移动互联网。网易和腾讯在他们的新闻应用上,他们兼容了几乎所有的手机平台

    比如 IOS、安卓、黑莓、塞班等等,因为新闻应用的核心在新闻,而新闻的用户基数巨大,需要兼顾高质量和低质量用户。

    而腾讯在 IOS 上的几十个应用,除了新闻、QQ、浏览器,其他的基本都只有 IOS 和安卓,在塞班和黑莓及其他上就没有了。

    所以,你的应用核心是哪方面?兼容的成本有多大?会不会导致成本控制问题?用户选择尤为重要,放弃低质量用户也是一种成本控制。

    在用户基数庞大的项目上,放弃低质量用户就有点愚笨,比如某个新闻站有 1 亿用户,2000 万为使用低版本浏览器的低质量的用户,而面对 2000 万用户,

    你兼容它或单独为 2000 万做个低版本服务,成本虽然可能还是 3 倍,但对于庞大的用户基数来看,这种成本又非常低廉。

    而你的用户基数只有 1000 人,而低质量用户有 50 人,那么为了这 50 人去做兼容,那么 3 倍的成本就变得非常的昂贵。

  3、项目侧重点
    你的项目重点在哪里?是为了看新闻?是为了宣传线下产品?那么你其实有必要兼容低版本浏览器。

    首先这种类型的站不需要太好的用户体验,不需要太多的交互操作,只是看,而兼容的成本比较低,并且核心在新闻或产品!

    但如果你的项目有大量的交互、大量的操作,比如全球最大的社交网已经不兼容 IE6/7,最大的微博也不再兼容 IE6/7,就是这个原因。

    所以,项目并不是一味的全面兼容,或者全面不兼容,主要看你的项目侧重点在哪里!
  4、用户体验
    如果你的项目在兼容低版本浏览器成本巨大,比如社交网,有大量的 JS 和 AJAX 操作。那么兼容 IE6/7 的成本确实很高,如果兼容,用户体验就会很差。

    兼容有两种,一种是高版本浏览器用性能好,体验好的模式;低版本的自动切换到兼容模式。第二种就是,不管高版本或低版本都用统一的兼容模式。

    这两种成本都很高。用户体验好的模式,能增加用户粘度,增加付费潜在用户,而用户体验差的总是被用户归纳为心目中的备胎(所谓备胎就是实在没有了才去访问,如果有,很容易被抛弃)。

  5、教育用户
    很多项目可能是有固定客户群,或者使用该项目人员质量普遍较高。那么,面对零星一点的低质量用户,我们不能再去迎合他。

    因为迎合他,就无法用高质量的用户体验去粘住忠实用户,又不能获取到低质量用户的芳心。

    所以,我们应有的策略是:牢牢把握住高质量的忠诚用户,做到他们心目中的第一;

    教育那部分低质量用户(比如企业级开发项目,可以直接做企业培训,安装高版本浏览器等等。互联网项目,就给出提示安装高版本浏览器即可)。

    那么一部分低质量用户被拉拢过来,还有一小撮死性不改的就只有放弃。切不可捡了芝麻丢了西瓜,不要贪大求全。

JQuery的概述的更多相关文章

  1. 从零实现一个简易jQuery框架之一—jQuery框架概述

    我们知道,不管学习任何一门框架,了解其设计的理念.目的.总体的结构及核心特性对我们使用和后续的深入理解框架都是有很大的帮助的.因此在这里先梳理一下本人对jQuery框架的一些理解. 设计目的(为什么要 ...

  2. 数据管理必看!Kendo UI for jQuery过滤器概述

    Kendo UI for jQuery最新试用版下载 Kendo UI目前最新提供Kendo UI for jQuery.Kendo UI for Angular.Kendo UI Support f ...

  3. jquery源码学习(一)——jquery结构概述以及如何合适的暴露全局变量

    jQuery 源码学习是对js的能力提升很有帮助的一个方法,废话不说,我们来开始学习啦 我们学习的源码是jquery-2.0.3已经不支持IE6,7,8了,因为可以少学很多hack和兼容的方法. jq ...

  4. jQuery选择器概述

    1.基本选择器:1) #id : 根据给定的id匹配一个元素:2) .class: 根据给定的类名匹配元素:3)element: 根据给定的元素名匹配元素:4)* : 匹配所有元素:5)selecto ...

  5. jquery插件-表单验证插件

    JQuery 插件概述: 插件(plugin)也被成为扩展,是一种遵循一定规范的应用程序编写出来的程序,JQuery有大量 现成的插件. 一句话,JQuery插件就是别人依照Jquery官方规范写好的 ...

  6. JQuery入门

    JQuery入门 1 jQuery的概述 1.1 jQuery简介 jQuery是一个 JavaScript函数库,它是一个“写的更少,但做的更多”的轻量级 JavaScript 库.jQuery 极 ...

  7. jQuery选择器 之详述

    jQuery选择器 一. 单词小计 Pervious 上一页sibling  同级first  第一last  最后not  不 Even  偶数    odd  奇数 header  页眉 一.jQ ...

  8. 利用jQuery实现的Ajax 验证用户名是否存在

    异步刷新实现方式有多种,也可以借助JS的多种框架,下面是使用jQuery框架实现的AJAX 验证用户名是否存在 jQuery.ajax概述 HTTP 请求加载远程数据. 通过jQuery 底层 AJA ...

  9. jquery ajax 使用

    异步刷新实现方式有多种,也可以借助JS的多种框架,下面是使用JQuery框架实现的AJAX 验证用户名是否存在 jQuery.ajax概述 HTTP 请求加载远程数据. 通过jQuery 底层 AJA ...

随机推荐

  1. Metasploitable 2系列教程:信息收集

    Metasploitable 2 系统是一个基于ubuntu 的系统.其设计的最初目的为安全工具测试和常见漏洞攻击演示.而在这篇关于 Metasploit 的教程中,我们将列举有关 Metasploi ...

  2. 测试与log

    1 加载logback private static void loadloack() { LoggerContext lc = (LoggerContext) LoggerFactory.getIL ...

  3. LeetCode Number of 1 Bits

    原题链接在这里:https://leetcode.com/problems/number-of-1-bits/ 题目: Write a function that takes an unsigned ...

  4. linux下使用sftp

    何为sftp sftp是Secure File Transfer Protocol的缩写,安全文件传送协议.可以为传输文件提供一种安全的加密方法. 连接 linux下直接在终端中输入: sftp us ...

  5. cocos2dx 3.x(屏幕截图的两种方法)

    [RenderTexture] RenderTexture这个动态纹理类,顾名思义就是可以动态创建纹理图片. 屏幕截图主要步骤: > 开始截图:render->begin(); >  ...

  6. CsvHelper

    写66666行两个数字 用CsvHelper里的ExcelSerializer 400ms SaveAs 200ms 共600ms 直接用StreamWriter 150ms 行数可以超过65536 ...

  7. [转] java集合详解

    结合框架体系应该最重要的是如何灵活利用三种接口,set,map,list,他们如何遍历,各有什么特征,怎么样去处理,这是关键,在这个基础上再去掌握在什么场合用什么类型的接口.比如说list和set,s ...

  8. [eclipse] Server at localhost was unable to start within 45 seconds.

    When debuging in the eclipse with Tomcat, i meet these error: Server Tomcat v7.0 Server at localhost ...

  9. 复制 replication 新增表 add new article

    immediate_sync   false   Synchronization files are created only if there are new subscriptions. Subs ...

  10. DOM解析

    1.xml可扩展标记语言(Extensible Makeup Language) 最简单的声明语法: <?xml version="1.0" ?> 用encoding属 ...