首页 > 其他分享 >第1章 jQuery入门

第1章 jQuery入门

时间:2023-04-26 15:32:22浏览次数:49  
标签:jQuery 入门 JavaScript 用户 IE6 版本 兼容


学习要点:

1.什么是jQuery

2.学习jQuery的条件

3.jQuery的版本

4.jQuery的功能和优势

5.其他JavaScript库

6.是否兼容低版本IE

7.下载及运行jQuery


一.什么是jQuery

jQuery是一个JavaScript库,它通过封装原生的JavaScript函数得到一整套定义好的方法。它的作者是JohnResig,于2006年创建的一个开源项目,随着越来越多开发者的加入,jQuery已经集成了JavaScript、CSS、DOM和Ajax于一体的强大功能。它可以用最少的代码,完成更多复杂而困难的功能,从而得到了开发者的青睐。


二.学习jQuery的条件

jQuery是JavaScript库,所以jQuery在使用上要比原生的JavaScript要简单,但是对于网页编程来说,有些通用的基础知识是必备的:

1.XHTML或HTML5(含CSS,网页必备的基础技术,XHTML已完结90课);

2.JavaScript(虽然jQuery使用比JavaScript简单,但各种语法来自JavaScript,只要掌握已出课程的第一季149课即可,并不需要完全精通,只要理解语法和项目中简单的用法即可。);

3.服务器语言如:PHP(jQuery属于前端技术,那和后端技术是相辅相成、互相呼应的,而PHP课程目前出到第四季,而jQuery只需要PHP第一季136课的基础即可。);


三.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,增加了一些功能。2013年4月发布了jQuery2.0,5月发布了jQuery2.0.2,一个重大更新版本,不在支持IE6/7/8,体积更小,速度更快。


在制作这套课程的时候,我们最新的中文版的API文档是1.8版本的,有在线和离线两种手段查阅:

1.在线的可以访问:http://t.mb5u.com/jquery/

2.离线的AP文档将打包提供给大家3.如果要看最新的文档,英文版的:http://api.jquery.com/看不懂可以打开谷歌翻译,虽然不是特别准。

关于版本学习的问题:

版本的版本号升级主要有三种:第一种是大版本升级,比如1.x.x升级到2.x.x,这种升级规模是最大的,改动的地方是最多的,周期也是最长的,jQuery从1.x.x到2.x.x用了7年。第二种是小版本更新,比如1.7升级到1.8,改动适中,增加或减少了一些功能,一般周期半年到一年左右。第三种是微版本更新,比如1.8.1升级到1.8.2,修复一些bug或错误之类。

版本的内容升级主要也有三种:第一种是核心库的升级,比如优化选择符、优化DOM或者AJAX等;这种升级不影响开发者的使用。第二种是功能性的升级,比如剔除一些过时的方法、新增或增强一些方法等等;这种升级需要了解和学习。第三种就是BUG修复之类的升级,对开发者使用没有影响。

学习者有一种担忧,比如学了1.3版本的jQuery,那么以后升级新版本是不是还需要重学?没必要,因为并不是每次升级一个版本都会增加或剔除功能的,一半左右都是内部优化,升级到新版本并不需要任何学习成本。就算在新的版本增加了一些功能,只需要几分钟了解一下即可使用,无需清零之前的知识,只需后续累加。当然,在早期的jQuery版本都创建了最常用的功能,而新版本中增加的功能,也不是最常用的,无需立即学习,立马用起。



四.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低版本

这次jQuery发布了大版本2.x.x,完全放弃兼容IE6/7/8。不单单如此,很多国际上的大型站点也开始逐步不再支持IE6/7/8。但对于国内而言,比较大型的网站最多只是抛弃IE6,或者部分功能不支持IE6的警示框,还没可能一下子把IE6/7/8全面抛弃。这里我们就谈一谈你的项目是否有必要兼容IE6/7/8。


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

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

虽然大部分国内网站用IE6去运行都能基本兼容,但很多细节上还是有些问题,导致不能流畅的去使用。


疑问:我们新做的项目应不应该再兼容IE6或IE6/7/8?

这个问题争论很久,支持兼容的人会拿国情和使用率来证明。不支持兼容的人会用技术落后导致整个落后别国来证明。其实这两种都有商榷的地方。

首先,传统行业失败率为97%,而新新的IT行业更高达99%以上(数据可能不精确,但可以说明失败率很高)。那么站在更高的角度去看你的项目,你不管是付出3倍成本去完成一个用户体验一般,但兼容性很好的项目;还是付出正常成本去完成用户体验很好,但不兼容低版本浏览器;这两种情况不管是哪一种,最终可能都会失败。那么你愿意选择哪种?

是否兼容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.数据支持

如果对某一种类型的网站项目有一定的研究,那么手头必须有支持的数据分析。有数据分析可以更好的进行成本控制,更有魄力的解决高低质量用户的取舍。

第1章 jQuery入门_javascript


 

6.教育用户

很多项目可能是有固定客户群,或者使用该项目人员质量普遍较高。那么,面对零星一点的低质量用户,我们不能再去迎合他。因为迎合他,就无法用高质量的用户体验去粘住忠实用户,又不能获取到低质量用户的芳心。所以,我们应有的策略是:牢牢把握住高质量的忠诚用户,做到他们心目中的第一;教育那部分低质量用户(比如企业级开发项目,可以直接做企业培训,安装高版本浏览器等等。互联网项目,就给出提示安装高版本浏览器即可)。那么一部分低质量用户被拉拢过来,还有一小撮死性不改的就只有放弃。切不可捡了芝麻丢了西瓜,不要贪大求全。

PS:我们用了这六点讨论了一下是否需要兼容IE6或IE


七.下载及运行jQuery

目前最新的版本,是1.10.1和2.0.2,我们下载开发版,可以顺便读一读源代码。如果你需要引用到你线上的项目,就必须使用压缩版,去掉了注释和空白,是容量最小。

本课程使用的软件是:Nodepad++

使用测试的浏览器为:Firefox3.6.8、Firefox21+、Chrome、IE6/7/8/9、Opera和Safari

使用的版本为:1.10.1、2.02作为抛弃IE6/7/8版本会在单独章节中讲解

使用的html版本为:xhtml1.0,在必要的时候将会使用html5

使用的调试工具:Firefox下的firebug

//单击按钮弹窗
$(function(){
    $('input').click(function(){
        alert('第一个jQuery程序!');
    });
});

 

标签:jQuery,入门,JavaScript,用户,IE6,版本,兼容
From: https://blog.51cto.com/u_16089934/6228050

相关文章

  • SpringSecurity从入门到精通:其他权限校验方法&自定义权限校验方法
    其他权限校验方法我们前面都是使用@PreAuthorize注解,然后在在其中使用的是hasAuthority方法进行校验。SpringSecurity还为我们提供了其它方法例如:hasAnyAuthority,hasRole,hasAnyRole等。​这里我们先不急着去介绍这些方法,我们先去理解hasAuthority的原理,然后再去学......
  • SpringSecurity从入门到精通:从数据库查询权限信息&自定义失败处理
    从数据库查询权限信息      记得打开redis      自定义失败处理我们还希望在认证失败或者是授权失败的情况下也能和我们的接口一样返回相同结构的json,这样可以让前端能对响应进行统一的处理。要实现这个功能我们需要知道SpringSecurity......
  • fork-join 入门例子
    一介绍Fork/Join模式有自己的适用范围。如果一个应用能被分解成多个子任务,并且组合多个子任务的结果就能够获得最终的答案,那么这个应用就适合用Fork/Join模式来解决。图1给出了一个Fork/Join模式的示意图,位于图上部的Task依赖于位于其下的Task的执行,只有当所有的子任务......
  • Java8 教程_编程入门自学教程_菜鸟教程-免费教程分享
    教程简介Java8(又称为jdk1.8)是Java语言开发的一个主要版本。Java8是oracle公司于2014年3月发布,可以看成是自Java5以来最具革命性的版本。Java8为Java语言、编译器、类库、开发工具与JVM带来了大量新特性。Java8入门教程-从简单的步骤了解Java8,从基本到高级概......
  • 英语笔记:入门介绍
    短期快速掌握语法基础,不同时做几件事同时学语法和词汇,用造句的方法来学语法,再结合阅读巩固积累词汇,进而掌握造句和理解句子的能力,有了这个基础,再学发音,口语和听力,就容易多了。语法知识练习复习虽然能截取视频画面,但是最多一百张,字多了确实累,那还不如直接抄下来,在加上对自己......
  • Go语言入门12(协程 goroutine)
    协程进程和线程进程​ 当运行一个应用程序的时候,操作系统会为这个应用程序启动一个进程。可以将这个进程看作一个包含了应用程序在运行中需要用到和维护的各种资源的容器。这些资源包括但不限于内存地址空间、文件和设备的句柄以及线程线程​ 一个线程是一个执行空间,这个空间......
  • C# Socket入门
    1.什么是Socketsocket被翻译为“套接字”,它是计算机之间进行通信的一种约定或一种方式。通过socket这种约定,一台计算机可以接收其他计算机的数据,也可以向其他计算机发送数据;套接字就是四元组,即源ip+端口port目的ip+端口port,表示绝对唯一的连接;Socket是在应用层(Http、SSH......
  • kafka入门例子 for java
    1,生产者importjava.util.Properties;importkafka.javaapi.producer.Producer;importkafka.producer.KeyedMessage;importkafka.producer.ProducerConfig;publicclassTestProducer{publicstaticvoidmain(String[]args){Propertie......
  • Rust编程语言入门之最后的项目:多线程 Web 服务器
    最后的项目:多线程Web服务器构建多线程Web服务器在socket上监听TCP连接解析少量的HTTP请求创建一个合适的HTTP响应使用线程池改进服务器的吞吐量优雅的停机和清理注意:并不是最佳实践创建项目~/rust➜cargonewhelloCreatedbinary(application)`......
  • 大模型入门(五)—— 基于peft微调ChatGLM模型
    ChatGLM是基于 GeneralLanguageModel(GLM) 架构,针对中文问答和对话进行了优化。经过中英双语训练,辅以监督微调、反馈自助、人类反馈强化学习等技术,ChatGLM因为是中文大模型,在中文任务的表现要优于LLaMa,我在一些实体抽取的任务中微调ChatGLM-6B,都取得了很不错的效果。GL......