28 JavaScript 的基础:AJAX 和 SetTimeout()

AJAX即「Asynchronous JavaScript and XML」(非同步的JavaScriptXML技术),指的是一套综合了多项技术的浏览器网页开发技术。

from 维基百科

其实这个技术,就是以不更新整个页面,可以部份地或小地方去修改在页面上的资料。

那非同步的含义就是不需要等对方回应,就能做下一件事。
回到程序码上来说,我们都知道程序码是一行一行的往下执行,所以如果以以下的例子来看

function ping(){
  console.log('Ping!');
}

function pong(){
  console.log('Pong!');
}

function play(){
  console.log('Go!');
  ping();
  pong();
  console.log('Game Set!')
}

play();

当我们执行 play 这个 function 的时候,会按照顺序执行,画面如下:

接下来我想要做的是,在 ping 这个 function 内再做一件事,加上一个 setTimeout 的function,它的用途是有点像是设定在多少时间後去执行某一动作。在这里,我想要在它再 3000 毫秒,其实也是 3 秒後要印出大绝招。

function ping(){
  console.log('Ping!');
  setTimeout(()=>{
  console.log('大绝招!');
  },3000)
}

function pong(){
  console.log('Pong!');
}

function play(){
  console.log('Go!');
  ping();
  pong();
  console.log('Game Set!')
}

play();

如果这着我们刚刚的程序码是一行一行往下执行的话,那执行的顺序应该是
Go!
Ping!
大绝招
Pong!
Go!
Game Set!

但是我们在 JS bin 看看,会发现:

会发现,执行 setTimeout 时,有依据所写的 function 延迟了三瞟,因此加入了 setTimeout function 并没有打乱了整个顺序,这就是非同步。


<<:  JWT 验证魔术

>>:  [Day 26]选择TensorFlow的六大理由

全天下最愚蠢的事就是,每天不断地重复做相同的事,却期待有一天会出现不同的结果。

全天下最愚蠢的事就是,每天不断地重复做相同的事,却期待有一天会出现不同的结果。 Insanity: ...

Day28. Blue Prism最安全的管家 -BP自动登入Gmail

有些人常常遇到紧张时刻密码就是打不好, 因此常常错失登入三次失败的机会, 被锁定帐密光是请IT协助就...

DAY23 搞样式--CSS Gird小进阶(间隔/fr)

间隔 有了布局跟对齐功能之後,现在我们要来了解如何设置行与行/栏与栏之间的间隔罗。 下图是没有间隔的...

display : Inline、Block、Inline-Block

display:Inline、Block、Inline-Block 前言 display是用来设置每...

Day23:传入 JSON 文件

前言 上一篇文章我 hard code 了一些数据进去我的专案, 现在要来把这些数据放进 JSON ...