00:00
OK,咱们第一节课呢,还是带大家去把上午这个资料我们来过一下,其实上午我们呃实现了两个还算有点意思的功能,一个是收藏,一个是这个音乐播放与暂停,那至于说这些API,其实没有什么难度,没有什么难度,你去官网上找到他用就行了,重点还是一个思路啊,在就是在我编程的语言里面,思路是最重要的啊,最重要的就是说我把代码给到大家,你们照着我的敲一遍,其实意义不是太大,那重点是自己能把这个思路捋清楚。嗯,那在这一块我们大概过一下,我们需要考虑哪些东西,那首先我们先去做的那个是本地的缓存。本地行情OK,那在这里边首先它用到的一个API,那那我写到这吧,一个叫set storage,哎,当然这个时候大家要注意一个同步和异步的区别,哎,这个叫呃,Think,这个是同步对吧?哎到现在为止为什么同步和异步有什么区别?
01:14
那我们一对比,同步异步,他俩都有什么特点?哎,有同学说同步阻塞。那异步呢,非阻塞啊,这是它俩最明显的一个区别啊,同时呢,我们还要注意同步异步还有一个区别是什么?异步就是说它不会阻做后面,那等到我当前的任务执行的同时,我是不会继续往后走啊。哎,那我这个异步任务什么时候执行成功,我怎么知道呢。我怎么知道呢?那这个时候我们就要说异步任务,它里面都对应的有一个回调函数,哎,都对应的有一个回调函数。
02:05
同步有回调吗?同步肯定没有回调。嗯,这是最基本的一个,我们要知道OK,那我们往下来串一下我们这个思路。创业思路首先我们要考虑我们缓存的是什么啊?用户是否哎收藏当前文章,那么缓存的数据一定要记住,我们是以对象的形式缓存进去的,那就是对应的,应该这样。应该是这种类型,那这个K呢,是当前页面对应的下标,而这个to还是false,用来标识用户是否收藏。OK,那仅仅缓存一个这个是不够的,哎,这个时候我们要注意注意什么呢?来在这缩进一下,那首先你缓存之前啊,应该先去干嘛,应该先去获取之前本地缓存的数据,而我们缓存的新数据啊,他们是在原有数据的基础上进行的。
03:25
这个大家能理解吗?哎,没有什么问题,是在原有数据的基础上进行的。啊,这第一点,第二点我们还要关注一个东西是什么呢?就是说当呃呃页面加载的时候,我们应该去做一件事情。比如说我们是在outload中干嘛去获取本地缓存的数据,你说这一步我们是为了干嘛呀?那这一步对应的是咱上午写的哪呢?我们找到这个onload,咱们在这做了一个操作是什么,在这这么获取那个缓存的数据啊,其实我们上面是没有这个判断的吧,咱刚开始是不是写的是下边的,那你说我们的目的是什。
04:25
这是不是有个set data啊,其实咱的目的呢,是去动态,呃,修改当前页面啊,是否收藏文章的啊状态,这个状态是不是指的就是我们在这边定义的这个is collected呀。如果说你之前用户收藏了,那我再一次进入到这个页面的话,它是不是就应该收藏的状态啊,啊没有问题。嗯,但是在这儿呢,一定要注意一个小细节,一定要注意一个小细节。
05:02
用户是不是有可能是第一次进来了,很有可能按理来说这个就是一定存在的,也不能说很有可能一定存在第一次进来,那他第一次进来的时候,这是不是应该是没有数据才对啊,没有数据上午也给大家测试过一次,嗯,你拿到的是什么呢。哎,如果我们的story中没有缓存过,嗯。那你通过那个key哎,获取的value为空,这个很重要,你value维护的话,它本质上不是一个对象,不是一个对象,哎,那这个时候大家想一下啊,我上来就拿到一个空的东西。在这儿可能判断还没有什么影响,他没有报错,但是你想我们接下来在下边这个点击的时候,我们是不是同样的要去拿到本地缓存的这个数据啊,在这有吗。
06:04
没有,你会发现我上次给大家故意加个log,它是不是根本没有执行啊,那也就是说你下边的所有逻辑都跑不了,那跑不了的话,当前页面的这个状态是不是从没有办法存入进去啊。所以咱加了一个预处理的工作。哪个预处理呢?是不是这个,哎,就是说。如果用户嗯,他之前没有缓存过的话,我们去干嘛,去初始化一个空对象在哪呢?在storage中。啊,这是我们的一个大概的思路。大概的思路。
07:00
你只有把这些都考虑进去以后,才能实现这个功能,嗯,这是本地缓存的,那还有一个,哎,是我们去整那个音乐播放啊,这API自己可以去找一下,在这我们要注意的地方是啥?就是要考虑的地方,第一个呃,就上来点击控制音乐播放和暂停,这个不难,嗯,我们要注意的是呃,音乐什么时候播放,或者说是如何知道音乐在播放,或者是。暂停。那这个什么时候用呢?就是说你这边点击音乐播放,我通过这是不是也能控控制它的播放暂停,我这有暂停,我这边当前页面必须要知道,否则的话我是没有去没有能力去动态的什么切换这个状态啊。
08:00
啊,没有问题,这是第一点,那么再往下的话,还关注一个东西,就是说你得去,嗯,将爱播放音乐的页面状态缓存到某个地方。缓存到哪呢?我们是缓存在APP data中了,哎,你缓存到那个storage也可以,但是不要干什么事情,动不动就往storage里面去扔。因为啥,因为咱们学的这个storage在这是控制台,如果说你在用户的手机上的话,那这个story是会存到用户本地的。嗯,虽然说可能对你影响不太大,但是这样时间长的话,用户的手机会越来越卡。啊,咱们之前有时候大家应该是也见见到了这种,你比如说你的微信或者QQ,你长时间没有解缓存的话,你会发现你的手机特别卡。
09:01
嗯,就是因为本地的磁盘要满了。啊,这是一个事情,其实我们重重点就是这些东西,然后我再声明一个事情,大家在这儿我们是不是能清楚这儿的缓存啊,你在这儿清楚的只是当前开发工具的,不能清除用户手机本地的。因为啥用户手机本地根本没有这个按钮。对吧?哎,那要清的话得用户自己去清,或者说是我们这边我找一下这个API,嗯,这个就不给大家列了,我给你们说一下这边备过数据缓存吗?嗯,最直接的是调用方法clear,这个应该能懂,开始看法clear让story直接去清除本地数据的缓存,这个本地指的是用户手机的本地。嗯,OK,那我先把这个复习的视频。
我来说两句