回调函数

ajax参数意义及其他用法

故事扮演 提交于 2019-12-03 01:23:45
ajax jquery load():将服务器的数据加载出来,并把返回的数据放入被选择的元素中 $(selector).load(url, data, callback); selector --->被选的元素 url --->加载信息的url data ---> 选填,参数规定与请求一同发送的查询字符串键值对集合 callback ---> load() 方法完成后所执行的函数名称 jQuery.ajax([settings]):settings(选填)用于配置 Ajax 请求的键值对集合。可以通过 $.ajaxSetup() 设置任何选项的默认值。 1. async:boolean 默认值: true。默认设置下,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为 false。 注意,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。 2. beforeSend(XHR):Function 发送请求前可修改 XMLHttpRequest 对象的函数,如添加自定义 HTTP 头。 XMLHttpRequest 对象是唯一的参数。 这是一个 Ajax 事件。如果返回 false 可以取消本次 ajax 请求。 3. cache:boolean 默认值: true,dataType 为 script 和 jsonp 时默认为 false。设置为 false

自定义非父子组件传值

匿名 (未验证) 提交于 2019-12-03 00:41:02
const center = {}; center.on = function (eventName, callback) { if (!center[eventName]) { center[eventName] = []; } //保存回调函数 center[eventName].push(callback); } center.emit = function (eventName, params) { //取出对应事件的回调函数 let callbackArr = center[eventName]; //一一调用每一个回调事件 callbackArr.map((callback) => { callback(params); }) } center.off = function (eventName, callback) { //情况1:只传eventName,移除所有事件 //情况2:传eventName和callback if (!callback) { center[eventName] = null; } else { let callbackArr = center[eventName]; //删除指定的callback回调 let result = callbackArr.filter(callbackItem => { if (callback ==

回调函数的使用

匿名 (未验证) 提交于 2019-12-03 00:41:02
对JavaScript不太清楚,这次知道了回调函数的使用,记录一下。 简单来说,就是把回调方法作为一个参数,传递给另一个方法,然后在那个方法里面执行完一定操作,调用那个方法。这样就实现了回调。 例如: 需要被回调的方法: function callback(a) { console.log( ‘回调函数结果:‘+ a); } 把该回调方法传入另一个方法,在该方法里面调用该回调方法。 function invokeMethod(params,callback) { console.log( ‘接下来就要执行回调方法了‘ ); callback(params); } 最后:执行invokeMethod的时候,传入回调方法和相应参数,就能实现效果。 invokeMethod(‘测试回调方法‘,callback) 效果: 起始上一节里面的Ajax封装就是如此,把回调方法作为参数传入Ajax调用方法,Ajax在获取完数据后,在Ajax方法里面间接调用了回调方法。 Ajax执行方法: function createXMLRequst(){ try { return new XMLHttpRequest(); } catch (e) { try { return new ActiveXObject("Msxml2.XMLHTTP" ); } catch (e){ try { return new

Generator函数

匿名 (未验证) 提交于 2019-12-03 00:40:02
Generator 函数是 ES6 提供的一种异步编程解决方案。 1、所谓“异步”,简单说就是一个任务分成两段,先执行第一段,然后转而执行其他任务,等做好了准备,再回过头执行第二段。 2、异步编程方式: ( 1 )回调函数 ( 2 )事件监听 ( 3 )发布/订阅者 ( 4 ) Promise 对象 3、所谓回调函数,就是把第二段单独写在一个函数里面,等到重新执行这个任务的时候,就直接调用这个函数。 回调函数的异步方式容易形成多重嵌套,多个异步操作形成了强耦合,只要有一个操作需要修改,它的上层回调函数和下层回调函数,可能都要跟着修改。这种情况就称为”回调函数地狱”(callback hell)。 Promise可以解决callback hell问题,Promise对象允许回调函数的嵌套,改成链式调用。 二、什么是Generator? 语法上,可以把理解成,Generator 函数是一个状态机,封装了多个内部状态。 形式上,Generator 函数是一个普通函数。 整个Generator函数就是一个封装的异步任务,或者说是异步任务的容器,异步操作需要暂停的地方,都用yield语句。 Generator函数特征: (1)function 关键字和函数之间有一个星号(*),且内部使用yield表达式,定义不同的内部状态。 (2)调用Generator函数后,该函数并不执行

async await 的原理

匿名 (未验证) 提交于 2019-12-03 00:40:02
在公司的项目中,我们经常用到async await 这样的函数,它的作用也很奇特,可以让异步的函数等待异步执行的结果出来再继续往下进行。我一直很好奇这是怎么做到的,它内部的机理是怎么样的,就一个关键词在函数前面加async,在异步操作前面加await就可以做到。他是怎么做到的呢? 现在我们用的vue项目就会把我们的语法打包编辑成浏览器可以识别的语句,那么async,await 是从什么地方出来的呢,他是怎么实现异步变同步的呢? 我们的异步操作async await 如果错了就不会继续执行,如果我想让他继续执行应该怎么做? try cache? 还有呢? 为什么可以呢?内部是怎么执行的呢? function Fun () { return new Promise((resolve,reject) => { setTimeout(reject( new Error ( '你错了' )), 3000 ); }) } function Fun2 () { return new Promise((resolve) => { setTimeout(resolve, 3000 ); }) } async function g () { // try{ await Fun(); // }catch(e){ // console.log('错了'); // } console.log( 123 );

读zepto源码之工具函数

匿名 (未验证) 提交于 2019-12-03 00:39:02
Zepto 提供了丰富的工具函数,下面来一一解读。 本文阅读的源码为 zepto1.2.0 $.extend $.extend 方法可以用来扩展目标对象的属性。目标对象的同名属性会被源对象的属性覆盖。 $.extend 其实调用的是内部方法 extend , 所以我们先看看内部方法 extend 的具体实现。 function extend(target, source, deep) { for (key in source) // 遍历源对象的属性值 if (deep && (isPlainObject(source[key]) || isArray(source[key]))) { // 如果为深度复制,并且源对象的属性值为纯粹对象或者数组 if (isPlainObject(source[key]) && !isPlainObject(target[key])) // 如果为纯粹对象 target[key] = {} // 如果源对象的属性值为纯粹对象,并且目标对象对应的属性值不为纯粹对象,则将目标对象对应的属性值置为空对象 if (isArray(source[key]) && !isArray(target[key])) // 如果源对象的属性值为数组,并且目标对象对应的属性值不为数组,则将目标对象对应的属性值置为空数组 target[key] = [] extend

react学习笔记:setState和replaceState的区别

匿名 (未验证) 提交于 2019-12-03 00:37:01
setState setState用于设置状态对象 setState( object nextState[, function callback ]) 1 nextState,将要设置的新状态,该状态会和当前的state合并 callback,可选参数,回调函数。该函数会在setState设置成功,且组件重新渲染后调用。 合并nextState和当前state,并重新渲染组件。setState是React事件处理函数中和请求回调函数中触发UI更新的主要方法。 注意: 不能在组件内部通过this.state修改状态,因为该状态会在调用setState()后被替换。 来一个栗子! 点击前: 点击后: replaceState replaceState()方法与setState()类似,但是方法只会保留nextState中状态,原state不在nextState中的状态都会被删除。使用语法: replaceState( object nextState[, function callback ]) 1 nextState,将要设置的新状态,该状态会替换当前的state。 callback,可选参数,回调函数。该函数会在replaceState设置成功,且组件重新渲染后调用。 光说没用,来一个栗子! 点击前: 点击后 会发现内容直接给删除了,这就是两者的区别,相信大家也能理解了吧 - -

【熊猫烧香】病毒分析

匿名 (未验证) 提交于 2019-12-03 00:36:02
多图!!! 病毒名称:熊猫烧香 文件: spo0lsv . vir 大小: 30001 bytes 修改时间: 2007 年 1 月 17 日, 12 : 18 : 40 MD5 : 512301 C535C88255C9A252FDF70B7A03 SHA1 : CA3A1070CFF311C0BA40AB60A8FE3266CFEFE870 CRC32 : E334747C 壳信息: FSG V2 . 0 编写语言: [ Borland Delphi v6 . 0 - v7 . 0 ] 病毒行为: 拷贝自身到 C:\Windows\System32\drivers 目录, 遍历磁盘,在每个文件夹生成 Desktop_.ini 文件; 删除 .gho 备份文件; 感染 exe/scr/pif/com/htm/html/asp/php/jsp/aspx 文件; 通过弱口令连接局域网其他计算机传播; 建立启动项,禁止显示隐藏文件; 每隔20分钟下载 http://www.ac86.cn/66/up.txt 文件,下载病毒; 删除磁盘共享; 遍历服务,关闭安全中心等; 遍历注册表,删除杀毒软件启动项; 打开 tom/163 等网站 连接 http://update.whboy.net/worm.txt 下载木马文件 Win7 x86 虚拟机 IDA OD Apimonitor

异步编程有哪几种方法来实现

匿名 (未验证) 提交于 2019-12-03 00:32:02
异步编程有哪几种方法来实现? 1.背景介绍 2.知识剖析 2.1异步编程有哪几种方法 1.回调函数 2.2 回调函数 这是异步编程最基本的方法。回调函数的优点是简单,轻量级(不需要额外的库)。缺点是各个部分之间高度耦合(Coupling),流程会很混乱,而且每个任务只能指定一个回调函数,而且,如果再嵌套多几层,代码会变得多么难以理解 fn1(function(){ 2.3 2.4 Promises对象 3.常见问题 4.解决方案 5.编码实战 function fn1 ( f ) { alert ( 1 ); f (); }; function fn2 ( f ) { alert ( 2 ); f (); }; function fn3 () { alert ( 3 ); }; fn1 ( function () { fn2 (fn3); }); //回调函数 // 同步回调 function A ( callback ){ console . log ( "I am A" ); callback (); //调用该函数 } function B (){ console . log ( "I am B" ); } A (B); // 异步回调 function f1 ( n , callback ) {  setTimeout ( function () { var count =