在上一篇文我们说到了回调地狱不好的地方,今天我们看看怎么来优化它,让它可以运用到实际开发中. 什么是回调地狱?回调地狱就是一个函数里面嵌套了所有功能函数,然后缩略图形成一个三角形. 这样的代码可复用性不强.阅读性差也代表可维护性差.扩展性也差. 也不符合设计模式的六大原则, 其中的  单一职责原则, 和 开闭原则 单一职责原则:尽量让一个函数只做一件事情 开闭原则:函数应该对扩展开放,对修改关闭 --------------------------------------------------…
$.ajxa() ——基本使用 前提:先了解js的执行机制 $.Callbacks()——回调 $.Deferred()——异步 $.when() 网络服务器链接由<渡一教育>提供 ------------------------------------------------- $.ajxa() //$.ajax() -- 基本使用 // 参数 obj // 属性 url: 'https://easy-mock.com/mock/5c0b4a876162b83fe0a50cb9/person…
jQuery工具方法 $.extend()插件扩展(工具方法) $.fn.extend()插件扩展(实例方法) 浅度克隆.深度克隆 两个方法基本是一样的,唯一不同的就是调用方式不一样 ------------------------------------------------------------- $.extend()插件扩展(工具方法) 可以自己定义方法拿来使用 我们定义的是可以自己传入相应的参数,然后返回出两个参数之间的随机数的方法 $. 自定义的方法名就可以使用 $.fn.exte…
jQuery 工具方法 $.type()判断数据类型 $.isArray() $.isFunction() $.isWindow()... $.trim()消除空格 $.proxy()改变this指向 $.noConflict()防止冲突 $.each()循环 $.map() $.parseJSON()严格json字符串转换成对象-原生JSON.parse() $.makeArray() 类数组转换成数组 ---------------------------------------------…
 $.ajax() $.Callbacks() $.Deferred() .then() $.when() ----------------------------------------------------------------- $.ajax() 向后端请求数据. 参数:obj  对象 对象里面放啥, 放下面这些   ↓    以下为常用的 属性. url : 'https://easy-mock.com/mock/5c0b4a876162b83fe0a50cb9/person'   …
jquery-12 jquery中的工具方法有哪些 一.总结 一句话总结:四个较常用方法.1.isArray();2.isFunction();3.isEmptyObejct();4.trim(); 1.jquery的工具方法的格式是什么样的? $.加方法名 4 str=$.param(obj); 24 str=$('form').serialize(); 2.将数据转成url参数的两个方法是哪两个? param把json对象转成url参数 serialize把表单的属性和值转成url参数字符串…
回调地狱 什么是回调地狱,回调函数,一个嵌套着一个,到最后,缩略图成了 一个三角形, 造成了可阅读性差,可阅读性差就代表代码的可维护性 和 可迭代性差,最后还有一个就是可扩展性差. 也不符合设计模式的六大原则, 其中的  单一职责原则, 和 开闭原则 单一职责原则:  尽量让一个函数只做一件事情  开闭原则:函数应该对扩展开放,对修改关闭 接下来看一下什么是回调地狱:  小案例的效果图: 下面的代码虽然能实现这个功能,但是如果按照这种做法,功能一多,回调函数会一个嵌套一个, 最后的代码会形成一个…
本文正式地址:http://www.xiabingbao.com/jquery/2015/07/25/jquery-judge-type 在javascript中对变量类型的判断中,我们讲解了了jquery中$.type()实现的原理.当然,jquery除了提供$.type的工具方法外,还提供了几个其他的工具方法:$.isFunction(), $.isArray(), $.isWindow(), $.isNumeric()等.这几个方法从方法名上就能看出其用途来,下面我们来一一讲解这几个方法在…
使用jQuery的时候会发现,jQuery中有的函数是这样使用的: $.get(); $.post(); $.getJSON(); 有些函数是这样使用的: $('div').css(); $('ul').find('li'); 有些函数是这样使用的: $('li').each(callback); $.each(lis,callback); 这里涉及到两个概念:工具方法与实例方法.通常我们说的工具方法是指无需实例化就可以调用的函数,如第一段代码:实例方法是必须实例化对象以后才可以调用的函数,如第…
$.extend() $.fn.extend() -------------------------------------------------- $.extend() 插件扩展(工具方法) jquery 为外界提供了 可添加工具方法的 插件扩展, 要把自定义的方法, 放到 $. 上,方便调用. 只能通过$.extend()方法 参数方面, 传入对象  方法名 对应 函数  { definedManDom : function(){} } 当然, 除了 扩展插件方法, 还有一个功能, 浅度克…
谈及回调地狱发生得情况和解决办法,就必须追溯到原生ajax请求. 先列出服务器提供的数据接口: // 服务器端接口 app.get('/data1', (req, res) => { res.send('hi') }) app.get('/data2', (req, res) => { res.send('hello') }) app.get('/data3', (req, res) => { res.send('nihao') }) // 启动监听 app.listen(3000, (…
$.type() $.isArray() $.isFunction() $.isWindow()... $.trim() $.proxy() $.noConflict() $.each() $.map() $.parseJSON() $.makeArray() ------------------------------------------------------ $.type() $.isArray() $.isFunction() $.isWindow()... 判断数据类型 原生js …
成品图如下所示: 搭建HTML+CSS结构 <style> /* 给tpl设置为不可见,因为我们不需要用到他,我们只是要克隆他身上的东西,克隆完就把他删掉.就跟渣男一样!!!*/ .tpl{ display: none; } </style> </head> <body> <div class="wrapper"> <div class='tpl'> <p></p> <span>…
本次演示回调地狱: 模拟电影网站,判断用户是否为该网址的vip用户(最高权限为vip) 如果vpi就展示出vip电影,点击相应的电影显示出该电影的详细介绍 ------------------------------------------------------------------ 先来看一下成品图: 先搭建好HTML+CSS结构,代码如下: <style> *{ padding: 0px; margin:0px; } .tpl{ display: none; } .wrapper{ o…
目录 常用工具方法 判断数据类型的方法 Ajax操作 $.ajax 简便写法 Ajax事件 返回值 JSONP 文件上传 参考链接 jQuery函数库提供了一个jQuery对象(简写为$),这个对象本身是一个构造函数,可以用来生成jQuery对象的实例.有了实例以后,就可以调用许多针对实例的方法,它们定义jQuery.prototype对象上面(简写为$.fn). 除了实例对象的方法以外,jQuery对象本身还提供一些方法(即直接定义jQuery对象上面),不需要生成实例就能使用.由于这些方法类…
请先看上一课的回调对象.Deferred是通过extend添加到jQuery中的工具方法.如下所示: jQuery.extend({ Deferred: function( func ) { }, when: function( subordinate /* , ..., subordinateN */ ) { }}); 首先,来介绍下Deferred的使用: var cb = $.Deferred(); setTimeout(function(){ alert(1); cb.resolve()…
前面的话 jQuery提供一些与元素无关的工具方法,不必选中元素,就可以直接使用这些方法.如果理解原生javascript的继承原理,那么就能理解工具方法的实质.它是定义在jQuery构造函数上的方法,即jQuery.method(),所以可以直接使用.而那些操作元素的方法,是定义在构造函数的prototype对象上的方法,即jQuery.prototype.method(),所以必须生成实例(即选中元素)后使用.把工具方法理解成像javascript原生函数那样可以直接使用的方法就行了.下面将…
jQuery函数库提供了一个jQuery对象(简写为$),这个对象本身是一个构造函数,可以用来生成jQuery对象的实例.有了实例以后,就可以调用许多针对实例的方法,它们定义jQuery.prototype对象上面(简写为$.fn). 除了实例对象的方法以外,jQuery对象本身还提供一些方法(即直接定义jQuery对象上面),不需要生成实例就能使用的静态方法.由于这些静态的方法类似“通用工具”的性质,所以我们把它们称为“工具方法”(utilities). 工具方法多为静态的. 常用的工具方法…
一.为什么jquery前面要写$ Javascript没有package的概念,而作者又希望所有jQuery相关的API都能通过一个全局性的对象来容纳. 名为jQuery的全局变量就是这样一个对象,不过显然作者也觉得没必要每次都要大家写jQuery.balabala......这样有点小啰嗦了,于是就又给了jQuery一个简短而独特的别名——$. 二.$.fn  $.extend()   $.fn.extend 理解jquery的$.extend().$.fn和$.fn.extend()   …
异步编程在JavaScript中非常重要.过多的异步编程也带了回调嵌套的问题,本文会提供一些解决“回调地狱”的方法. setTimeout(function () { console.log('延时触发'); }, 2000); fs.readFile('./sample.txt', 'utf-8', function (err, res) { console.log(res); }); 上面就是典型的回调函数,不论是在浏览器中,还是在node中,JavaScript本身是单线程,因此,为了应对…
jQuery.ajax()方法的应用 jQuery.ajax()的无忧回调(优雅的代码风格) 一.jQuery.ajax()方法的应用 jQuery.ajax()实质上就是在ajax的基础上进行了封装,将参数设置,方法调用,数据传输,响应的回调函数等都封装到一个对象中,然后使用这个对象作为jQurey.ajax()的参数调用实现统一配置执行的效果. jQuery.ajax(object)中的object的常用属性及设置: url:请求地址 type:HTTP的请求方法 success:请求成功的…
最近遇到一个问题,发现使用jquery的ajax方法时,回调方法无法执行,而使用$.load()方法时却能正确返回数据.经过长时间调试最终发现是自己粗心大意,原来后台返回的是json数据,而返回的数据是使用字符串拼接为json数据,拼接时缺少了逗号分隔,导致返回的json数据格式错误,导致执行了error中的回调函数,并未执行success的回调函数. 错误的数据如下: for (ZFMPA zfmpa : list) { json="{\"nbr\":\"&quo…
计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript学习笔记(3--this/call/apply) Java程序猿的JavaScript学习笔记(4--this/闭包/getter/setter) Java程序猿的JavaScript学习笔记(5--prototype) Java程序猿的JavaScript学习笔记(6--面向对象模拟) Java程…
$.ajax({ options:/*类型:Object;  可选.AJAX 请求设置.所有选项都是可选的.*/ async:/*类型:Boolean; 默认值: true.默认设置下,所有请求均为异步请求.如果需要发送同步请求,请将此选项设置为 false. 注意,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行.*/ beforeSend(xhr):/*类型:Function; 发送请求前可修改 XMLHttpRequest 对象的函数,如添加自定义 HTTP 头. XMLHtt…
个人学习笔记  初识jQuery 1.我的第一个JQuery <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>MyJQuery</title> <script src="jquery-1.12.4.js"></script> <script> //J…
Jquery笔记:jQuery是一个JavaScript函数库,专为事件处理设计 1.jQuery的引入 <script text="type/javascript" src=""></script> html5中<script src=""></script> 2.选择器实例 $(this),$("p"),$("p.intro"),$(".intr…
jQuery对象上面还定义了Ajax方法($.ajax()),用来处理Ajax操作.调用该方法后,浏览器就会向服务器发出一个HTTP请求. $.ajax方法 $.ajax()的用法主要有两种. $.ajax(url[, options]) $.ajax([options]) 上面代码中的url,指的是服务器网址,options则是一个对象参数,设置Ajax请求的具体参数. $.ajax({ async: true, url: '/url/to/json', type: 'GET', data :…
jQuery 提供多个与 AJAX 有关的方法. 通过 jQuery AJAX 方法,您能够使用 HTTP Get 和 HTTP Post 从远程服务器上请求文本.HTML.XML 或 JSON - 同时您能够把这些外部数据直接载入网页的被选元素中. jQuery 不是生产者,而是大自然搬运工. jQuery Ajax本质 XMLHttpRequest 或 ActiveXObject 注:2.+版本不再支持IE9以下的浏览器 1. jQuery.get(...) 所有参数: url: 待载入页面…
Ajax() 方法 $.ajax() 中的参数及使用方法 在jQuery中,$.ajax() 是最底层的方法,也是功能最强的方法.$.get().$.post().$.getScript().getJSON() 都是在此方法上建立的. $.ajas([options]) $.ajax() 的参数列表 参数名 类型 功能描述 url String 发送请求的地址 type String 数据请求的方式(post 或 get),默认为get data String 或 object 发送到服务器的数…
Ajax 全称为:“Asynchronous JavaScript and XML”(异步 JavaScript 和 XML), 它并不是 JavaScript 的一种单一技术,而是利用了一系列交互式网页应用相关的技术所形成的结合体.使用 Ajax,我们可以无刷新状态更新页面,并且实现异步提交,提升了用户体验 Ajax中使用的技术主要包括: 1.JavaScript,通过用户或其他与浏览器相关事件捕获交互行为: 2.XMLHttpRequest 对象,通过这个对象可以在不中断其它浏览器任务的情况…