JavaScript和JQuery之战再续
之前写过关于JavaScript和Jquery的之间的比较,现在再看比较偏向于理论知识,还不是很理解。经过这一段时间的项目的锻炼,对JQuery有了新的认识。
JavaScript和Jquery的比较,这让我想起我们一开始学习VB就接触到的函数,函数的功能就是能够完成某项功能,我们现在所用的JavaScript和Jquery也是实现某种功能,让某元素有一个行为,下面这个图就能看出这三者之间的关系,只是在越来越精细化。
接下来就以JavaScript中一个重要的事件window.onload和JQuery中的$(document).ready()事件来对比,详细说明二者的不同。
不同点
一、执行时机:
window.onload方法是网页中所有元素(包括元素的所有关联文件)完全加载到浏览器后才执行
$(document).ready()在DOM树加载完成就可以被调用
举一个简单的例子,当我们搜索百度图片时,为网页中图片添加某些行为(例如单击后让图片显示或隐藏),使用window.onload方法,用户必须等到每一幅图片都加载完毕后,才可以进行操作。如果使用JQuery来进行设置,只要DOM就绪(与图片有关的HTML下载完成,并且解析为DOM树,但很可能图片还未加载完成,所以此时图片的高度和宽度的属性不一定有效)出来就可以进行操作,不需要等待所有图片下载完成。很显然后者才会有更好的用户体验。
二、编写个数:
window.onload方法不能同时编写多个下面的代码并且正确执行;
window.onload=function(){
alert("test1");
}
window.onload=function(){
alert("test2");
}
结果:
只输出“test2”
$(document).ready()可同时编写多个
$(document).ready(function(){
alert("Hello world");
});
$(document).ready(function(){
alert("Hello agin");
});
结果:
两次都输出
三、简写:
JavaScript中无简写形式
JQuery中简写形式:
$(function(){
//...编写代码
})
$().ready(function(){
//...编写代码
})
JavaScript只有这一种书写方式,对于元素的查找比较复杂,而Jquery提供了多种方式,能够通过简单的代码找到所需要的元素。
总结:
通过上面可以看出,Jquery与JavaScript与HTML的交互,是通过事件来处理的。当文档或者某个元素行为发生变化,浏览器自动生成一个事件,但二者的机制不同,而且相对于复杂的JavaScript,Jquery有其简单的一面,能够为程序员提供方便。
JavaScript和JQuery之战再续的更多相关文章
- jQuery学习之路(7)- 用原生JavaScript实现jQuery的某些简单功能
▓▓▓▓▓▓ 大致介绍 学习了妙味,用原生的JavaScript实现jQuery中的某些部分功能 定义自己的函数库lQuery ▓▓▓▓▓▓ $()选择器的实现 jQuery是面向对象的,所以自己编写 ...
- Error: Bootstrap's JavaScript requires jQuery错误
引入bootstrap时会出现的问题:boostrap下拉菜单无效,浏览器报Uncaught Error: Bootstrap's JavaScript requires jQuery错误, 解决办法 ...
- 【JavaScript与JQuery获取H2的内容】
撰写日期:2016-7-13 11:05:07 JavaScript与JQuery获取DOM内容是有区别的,接下来看一例子 栗子: Jquery-获取H3中的内容然后Dom转换为Jquery < ...
- Jquery 复习练习(02)Javascript 与jquery 互转 onclick 与click区别
Javascript 与jquery 互转 jquery 为<script src="jquery-1.8.3.js"></script> 以checkbo ...
- 最流行的JavaScript库jQuery不再支持旧版IE
直到JQuery2.0的发布,流行的jQuery JavaScript库到了一个重要里程碑.2.0版本比前任版本在大小上缩减了12%,但是更大的新闻是,jQuery 2.0不在对IE6,7,8三个版本 ...
- 原生javascript和jquery实现简单的ajax例子
后台C#代码 public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/p ...
- 在C#后端处理一些结果然传给前端Javascript或是jQuery
在C#后端处理一些结果然传给前端Javascript或是jQuery,以前Insus.NET有做过一个例子<把CS值传给JS使用 >http://www.cnblogs.com/insus ...
- Javascript配合jQuery实现流畅的前端验证
做前端时一般都习惯用JavaScript进行表单的简单验证比如非空验证和正则表达式验证,这样过滤后的数据提交到服务端再由专门的控制器做数据处理,这样能减轻服务器的负担,下面看一下前端验证的简单步骤: ...
- JavaScript、Jquery选择题
尚学堂Java EE软件工程师认证考试 试题库-选择题 一. 选择题(包括单选和双选) 1.B 在JavaScript中,以下变量命名非法的是( )(选择一项) A. numb_1 ...
随机推荐
- dbcp与c3p0的区别
众所周知,无论现在是B/S或者是C/S应用中,都免不了要和数据库打交道.在与数据库交 互过程中,往往需要大量的连接.对于一个大型应用来说,往往需要应对数以千万级的用户连接请求,如果高效相应用户请求,对 ...
- python文件夹操作
1.遍历文件夹下所有文件2.将后缀为.DCM的文件复制到指定文件夹 import os import shutil def all_path(dirname): result = []#所有的文件 f ...
- LeetCode 343. 整数拆分(Integer Break) 25
343. 整数拆分 343. Integer Break 题目描述 给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化. 返回你可以获得的最大乘积. 每日一算法2019/5/2 ...
- Python2.7+virtualenv+CUDA 10.0版的pytorch v1.3.0 +运行人群计数crowdcount-mcnn网络
Python2.7$ python2 -m virtualenv pytorchenv$ source pytorchenv/bin/activate $ pip install ipython py ...
- 解决sublime text3运行PyQt5代码不能显示窗口的问题
如题,在sublime中写了GUI代码,Ctrl+B能运行,但是就是不能显示窗口. 解决办法: 找到路径C:\Users\superlee\AppData\Roaming\Sublime Text ...
- OSGI.NET插件方式开发你的应用
之前一直从事C# WEB开发.基本都是业务开发,性能优化. 体力活占比90%吧.模块真的很多很多,每次部署经常出先各种问题.发布经常加班. 今年开始接触winform 开发.发现C# 的事件 委托 ...
- InnoDB的MVCC实现原理
InnoDB的MVCC,是通过在每行记录后面保存两个隐藏的列来实现的. 这两个列,一个保存了行的创建时间,一个保存了行的过期时间(删除时间).当然存储的并不是实际时间,而是系统版本号(sytem ve ...
- bean标签解析与注册
protected void processBeanDefinition(Element ele, BeanDefinitionParserDelegate delegate) { BeanDefin ...
- C#中关于常用日期的计算
void Main() { DateTime dt = DateTime.Now; //当前时间 DateTime startWeek = dt.AddDays( - Convert.ToInt32( ...
- 【Java拾遗】Java transient关键字
1. transient的作用及使用方法 2. transient使用小结 3. transient使用细节--被transient关键字修饰的变量真的不能被序列化吗? 1. transient的作用 ...