《你不知道的JavaScript中卷》之异步与性能学习笔记

第一章 异步

我们经常遇到程序中将来执行的部分并不一定在现在运行的部分执行完之后就立即执行。也即是说现在无法完成的任务将会异步完成。

//ajax是某个库提供的ajax函数
var data = ajax('http://some.url.1');
consoele.log(data);
//通常data不会包含Ajax结果

因为标准 Ajax 请求不是同步完成的,这意味着 ajax(..) 函数还没有返回任何值可以赋给变量 data。如果 ajax(..) 能够阻塞到响应返回,那么 data = .. 赋值就会正确工作。
从现在到将来的“等待”,最简单的方式是使用一个通常称为回调函数函数

ajax('http://some.url.1',function myCallbackFunction(data){
    console.log(data);
});

任何时候,只要把一段代码包装成一个函数,并指定它在响应某个事件(定时器、鼠标点击、Ajax 响应等)时执行,你就是在代码中创建了一个将来执行的块,也由此在这个程序中引入了异步机制。

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...