发表于: 2018-07-02 21:15:20

5 285


今天完成的事情

  1. 做完了任务5
  2. 学习了异步编程的内容

明天计划的事情

  1. 继续学习Canvas

遇到的问题

在学习异步编程的时候,了解到了Promise对象,但是对其还是很晕乎,不是很了解。感觉需要先学习别的东西,对异步编程的思想作进一步的了解后,再回来学习promise应该会有新的收获

收获


JS任务2~4:杀人游戏任务总结

官方脑图:

个人脑图:



任务耗时:6天

是否延期:否

成果链接:http://39.108.71.175/Start-a-project/CSS/index.html

任务总结:

1. 学习了jQuery

2. 能够使用jQuery更加简洁的操作DOM

3. 学习了web存储的方法,能够在页面跳转之间传递参数,学习了JSON的格式以及字符串与JSON对象的转换方法。

JSON.stringify()方法可以把JSON对象转换为一个JSON字符串

JSON.parse()方法可以把JSON字符串转换为JSON对象。

web存储:

localStorage、SessionStorage是常用的web存储方法


localStorage的保存时间为永久,只能通过removeItem()的方法或者是使用浏览器工具来进行清除。

SessionStorage的保存级别是会话级,只要打开的标签页不关闭,那么一直保存在本地。

要注意的问题是,无论是localStorage还是SessionStorage,它们都只能保存字符串,即使传入一个对象,LocalStorage和SessionStorage都会将它们转换为字符串的形式,所以在使用从localStorage和sessionStorage中的数据之前,记得进行格式的转换处理。


4. 理清了杀人游戏的思路,流程图如下:




JavaScript实现异步编程的方式

什么是异步

看一个例子,有一个通过递归实现的计算斐波那契数列函数

当n增大到一定程度时,fib()的时间消耗是很大的,比如,当n=35时,在调用栈中存在35层函数调用,返回结果的时间接近5s!

然后我们在fib()函数后面还有一条语句,假设是

当我们的程序如下:

由于JavaScript是单线程的,我们需要等待fib(35)执行完成,才能进行下一条语句的执行。此时,我们的程序执行顺序与我们的书写顺序一致,成为同步

如果程序的执行顺序与我们的书写顺序不一致,则称为异步

如何实现异步编程

  1. 采用setTimeout()

上面的程序里,fib(35)会被先放入等待执行的队列中,然后马上执行下面的语句,1000ms后再执行fib(35)函数,此时的执行顺序就反了过来,实现了异步。

这种方式的优点:

简单,容易理解和部署

缺点:

各个部分高度耦合,流程容易混乱。



返回列表 返回列表
评论

    分享到