00:00
刚才我们讲了三级缓存的原理,原理讲了原理,它的价值就在于我们面试的时候能说上是吧,能说其实你面试就讲原理是吧,那么接下来我们要能做出来印象更深对吧?好,那么接下我们就创建一个啊这个缓存工具。创建一个什么样的类呢?这样一个类。啊,我们可以叫做bit bit map catch YouTube,说明做缓存的,那么它里面就包含我们的,这个包含什么呢?包括网络缓存。本地缓存,内存缓存。直接用它就可以了,好,我们来创建一下。咱们的工具这里。刘建。Bit map缓存的一个什么?啊,少一个T是吧。
01:01
好,Beat map是少了一个什么,少了个是吧,好,然后呢,这个是map。好,这重构,但这根们是没有重构出来啊,好还得来,诶有了对吧,有了好,但颜色变成黄的,你们知道是啥意思吗?是没有添加到哪里去啊啊,没有添加到我们的是什么啊,这个S温现在还是黄的吗?啊绿的了,好那这个就是我们图片缓存的工具类,好那么接下来这个类的话,我们是要在哪里去用呢?好,大家还记得我们吗?图我们改一改,让他在这里面去显示我们图片呢?好,那么可以做这样的一个。专题有了,接下来是互动啊,这互动的话我们可以去做一做,那就是特简单,就是把这个图的拷贝到互动里面就可以了。
02:12
好,把图组这份代码。正在码。啊,全全卡卡在哪里啊,不动。是不是粘贴一下好,然后粘贴过后啥问题没有啊好,然后这里面肯定各种方法得变吧,对吧,然后互动详情页面。要图纸详细面。要改改吧,改成这个。好,当然我们可以先运营起来看看好了没有是吧,好没有啊,运行起来好,那这个地方里面是还没有存数据进去啊。
03:19
好,那么跟他一样还得什么传递数据,那么也是存,第二个是可以啊好。啊逗号好,那这个时候呢,我们再去运行啊,我们就。可以了,先看一看。其实你就在这个做,就在我们图纸那做也行啊,对啊,在图纸做也行,但是我想单独在一个页面做啊。好,然后呢,我们去点击这个互动,好是不是这样可以了,对吧。啊,可以了,还挺好看的,那接下来我们就要在这个啊互动这里。
04:04
互动这里去做一个什么啊,是做这个三级缓存对吧?好那么我们刚才已经创建这个类了,接下来就要去把它出来吧,好然后来这个地方里面去定义一下。Bit map。然后呢,把它给溜出来,在哪里溜啊。在构造方法里面吧,好溜一下好,然后呢,这个时候就把它溜了,溜了过后,那么这个工具呢,我们显示非常方便,要把它就直接去调,去请求都得到数据啊,封装的很好啊,就是我们这个啊,图片缓存工具类,这个什么什么类呢?它是一个图片三级缓存工具类,注意三级缓存工类好,那么我们把它给溜出来了,溜出来过后就来到get you这里吧。
05:03
好找找,那么之前这个地方里面,它使用的是什么,这个时候我们把它什么干掉。好,使用自定义的三级缓存请求什么图片好,那么它呢,这里面就有一个方法get,我们bit map直接去叫bit map。好,然后呢,我们就这样变的话,肯定有凭有据的去根据这个路径去得到吧,不可能凭空去得到,好,那返回的是bit map。大家想想,你觉得如果这个真可以得到,你们觉得他得到的是从哪里得到的呀?啊是从网络还是本地还是内存呢?注意他从的是就说如果他得到直接返回的肯定是从内存或者什么本源,不可能是网络的吗?对,不可能是网络的,如果你网络的你立刻就能获取吗?肯定不可能,对不对,就是说他得到的。
06:26
肯定不是从网络得到的,因为你主线程中直接去得到一个网络图片,有可能吗?不可能,因为你这样写是不符合安卓的规律的,对不对?所以它只能是内存和本地对不对?好,所以如果这个图片它不为空,那么它其实就是来自于内存和什么本地。好,那么在我们这个地方里面叫色值到哪里去啊?啊,设置到我们的这个是吧,Hold的这个空件上,好好map map就这样,那这个图片其实就来自于哪里啊,来自于内存和本地,好那么接下来后我们这个方法去。
07:19
那么我们这个地方不是图片的一个三级缓存工具类吗?对吧,图片的一个三级缓存工具类,那既然是三级,那我们就把这几个级别都显出来呗,对吧?好,那么这个时候,那么从这个地方里面要体现到这几个级别了,这几个级别刚才我们在这个地方里面。已说过,这就是他的一个级别。大家看一下,我们去取的话,首先从内存中去取这个图片,那如果内存没有再在本地,如果本地取好了,再向内存中什么。
08:00
保存一份,好,那么如果本地也没有再去联网请求,然后获取图片,那写到空件上,在显示这个控件上,其实啊,这个时候它用到的就是handle了,好还有就是大用到就说因为因为你你你无法知道是哪张图片,是要是从这个位置进来,我才知道是哪个位置的哪张图片要显示。请求好的这张图片呢,是不是,所以这个也需要啊,到时候我们需要的时候再讲,然后你既然联网请求了,是不是在内存中和本地保存份,然后我往上拉的时候,往上拉的时候,这个时候是不需要联网了,所以的话呢,要在内存本地保存份,明白了吗?好,我们这么设计,那么大家想想,在我们这个地方里面,一会的话,我们就要去第一个事情,那什么话题,第二本地获取,第三网络获取,网络获取。
09:08
好,那么第一次进来,你觉得内存中有,本地中有吗?没有,所以我们应该先实现的是什么?网络好,接下来我们就定义一个网络工具,好,那么net cat cat缓存的一个U,好,然后呢,我们就有了,把它给创建出来,这就是我们的一个网络缓存工具,其实网络缓存工具是就说白了就是去网络请求图片而已,我们只是降落环境工具,其实就是什么请求工具是吧,网络。啊,这个缓存工具类,其实就是网络请求的这么一个工具啊,然后就把它算出来。好,这是一个网络缓存工具类,它其实就是网络请求图片的一个类啊,好,那么有了后注意它一定要把它溜出来吧,好,再来六啊,是这个一六的时候就有了。
10:15
但是这个方法有勾的方法吗?没有,其实他默就说一个类是默认有够的方法,但是对默认是空的,那我们现在要怎么办啊,自己选一个呗,是吧,好,那么这个时候呢,把它给溜出来有了吧,好,那有那个后在这个地方里面,大家看好这个地方里面,我们就优先去做这样的事情了吧,好,所以呢,Get beat map,好,Long ne,根据什么去获取啊。根据大家想想,我们这个是连往期请求图片能够立刻返回这边的map吗?不就说立刻返回不可能的,不可能你直接返回肯定返回不了,知道吧,那既然如此的话呢,我们就直接不不要返回值啊,因为我们用的是什么,后面用的是hand了啊,那这时候呢,我们直接可以创建。
11:16
好,那么问题有的说老你看你那这个们又回的变map,那你现在怎么办?没关系,就不搭理他啊,到时候呢,我们有办法的啊好那么在我们这个地方里面,那么这个时候呢,我们就要真正在地块里面需要做一个联网请求得到图片吧,好那么想要想得到图片,那么这个时候呢,我们就要去用一个什么主线程去请求吗?我们能在主线层请求吗?补能对吧,然后这个地方里面呢,就是啊就是start,好那在这个地方里面,大家看一下roundabable这里面,它其实它的构造方法里面是可以存一个什么able啊对不对,Able,那么这个时候呢,我们可以啊自己创建一个什么able,好,然后嘞,在这个地方里面好我们。
12:16
把它的这个啊方法导进下,然后把它给什么在这里面做一个什么六六的话,大家想想,那么这个时候我们相当于在这里面执行就是什么子线程吧,子线程,子线程我们要来做什么请求什么网络什么图片,那么这个请用网络图片是要有地址啊,要把什么这个存进来,重进来,这个构造方法有了吗?没有把这个创建构造方法,那构造方法有了之后,然后就这个就是一倍解URL等于一倍解ul,好那么把它给创建出来对不对,好这个时候来就可以了,好,那接下来我们要做的事情就是请求图片了吧。
13:01
求突变了,好,那这个时候用的什么呢?也就是用用的是我们就是六一个U啊,我们这样HTTP注意一个URL,那么有的同学特别容易把它写成这个大个S的,那就惨了,知道吧,这是安全的是吧,我们要的什么就普通的就行了,好然后呢,我们就那等于一个URL啊,然后啊,它这里面又一个UI logo后,然后它有一个啊啊有一个。你看好像是叫URL。用L的话嘞,把这个地址存进去是吧,然后点open注意啊,这不不怎么好写啊,你看六个U是全是大写,然后再去打开,好这个时候需要什么强转啊,先是捕获异常,然后再什么强转准备了吧,好那当然也可以写成两步,嗯,就是先录一个URLUR,然后六这样子吧。
14:17
那么这个是叫URL,然后你再在地方里面什么。这样子是也可以啊啊就这样也可以啊,那我就写两步吧,好那接下来它设置一些参数吧,比如说啊,Set我们的一个请求方法,求方法要用什么get能能小写吗?好,只能大写,不能小写啊大写啊好那接下来有过后呢,在我们地方里面,我们还要去set一个啊这个链接超时我们就五秒钟,如果五秒钟你都还没请求到的话,也是太low了吧,啊四秒就够了啊,然后啊,接下来还有一个读起超时read,好那么我们不可能就是花很多时间去读吧,Set里的好,这个读起超时也是十秒,如果四秒还没读下来,这个这个肯定就是这个不行,你网络太烂了是吧,甚至没有。
15:23
管我是吧,就没必要了,接下来还要做一个事情,就是什么链接吧,好,这个链接是一定要链接吗?不就是可显可不显,可显啊,可不啊。不写都反正都行,你想选就选是吧,但是这个你得一定得选,叫得到他的一个什么响应码啊,响应码好,那这个是响应码的意思吧,好扣好,那响应码如果是200就是成功了吧,这请求图片成功了吧,好那么呢,如果等于多少啊200那就是成功了,知道吧,否则就失败对不对。
16:09
啊。那么在我们这个地方里面,既然成功了,注意它相当于图片,图片是一个文件吧,文件的话,大家在学Java技术是学这个IO流啊,注意图片要想把它下载本地,不管是这个服务器在美国,在日本还是在哪个国家,你把这图片下到手机上是都是以流的方式啊,好这个时候呢,我们要去得到一个什么输入流,明白了吧?好,那这个时候就是音的讯S,好这个时候得到的就是一输入流,那一个流的话。存,然后这个时候呢,它你看它可以把一个什么把一个啊input string转后,为什么bit map好,大家可以看一下它返回的什么bit map对象对吧?好那这个时候呢,好,它返回的是这个bit map,好那么就是bit map bit map,那这bit map有了过后,其实我们就可以啊在内存中什么缓存一份啊,在本地中缓存一份,注意现在我们还没有讲到本地缓存,内缓存,我就先不缓存,先告诉大家到后面我们要做这个事情,好那得到这张图片过后,其实我们最着急的就要是要干嘛,显示到控件上吧,到。
17:45
控件上,那这个填在控件上是显示到我们这个图片上啊。是不是因为我们现在啊,现在用的是我们的这个啊漏,所以它能显示,如果你再运行起来,现在它是显示不了的,给大家可以看一下啊,就说我们在这个地方里面,现在是还是得不到数据的啊,那么这个时候我们要他显示现在肯定是不行的啊,给大家看。
18:19
好,然后呢,我们可以大家看一下,现在它显示的应该是默认图片吧,好,我们看一下点一个叫互动,你看有图片吗?没有吧,好,那要想显示的话,怎么显示呀。对不对。好,是这样的,你现在是在什么线程呢?子线程,子线程要切换到主线程,肯定用的是什么handle,对不对,好用的handle了,好,所以我们二话不说定义一个什么。喊的在哪里定义啊?在哪里定义啊,是在这个里面去定义憨的嘞,好,我们可以跑到这里来定义一个憨的了,Handle了,那另一个handle了,好,然后的话呢,我们去选一下实下hand的message方法,好那么这个选一个分号,然后在这个地方里面呢,注意要把这个hand的传到哪里去啊,是构造方法的时候,我就可以把它存进去了,对吧?然后在这个地方里面呢,这构造方法添加一下。
19:32
好,注意这样可以吗?错,不能这么写,不能这么写,你再写的话,以后用这个勾的方法,这个地方还要背实体画吗?不背了,一定要什么添加参数。知道吧,添加参数在这里,然后我们发消息是只是在。子线程请求才发,那么在内存中是还需要发消息吗?不需要了,因为它本身就在主线了嘛,对吧,所以在这个地方里面就什么直接把它什么重就可以了,就不需要接收了,知道吧,好,那把这个在什么。
20:12
写一下好,然后在这个地方里面,我们要去接收好,然后那么这时候呢,我们要去。写上这handle的,那这个handle的,注意这个handle的,我们有在这个类实的话吗?没有吧,那么这个时候我一发消息,最终会跑到哪里来?会跑到这里来吧,对不对,好,那也就是说我们在这个地方里面。在这个地方里面把这个图片。要显示到空间上,我们就可以采用发消息,把bit bit map发出去,那发出去了过后,现在就有一个非常头痛的问题,我发出去过后,这张图片我显示在哪个控件上?
21:10
你看一下在这里面get you get you,那也就说我这里面有每循环一次这个方法就重新创建了这个方法就每每往下拉,拉一次,拉一次,拉一次这个方法就执行一次啊,那执行次,那我到底是显示在这个的图片还是这个的图片是我很纠结啊。怎么办呢?这是用到了就会用到另外一个知识,可能大家从来没有听说过的,这个知识给家可以看一下啊,在这里面用到一个知识,我给你们看这个图。那么我就把这个当成是。这个第一第零张图片就这张,这是第几张啊,第一张这是第二张一样的。
22:00
然后我们在这个地方里面已经联网请求图片了,得到了。这张图片是谁的?那我要跟他有对应关系,起来吧。对不对,那这个时候怎么办呢?我就找到这张图片设置t tag,这张这个是为多少这张图片的为多少一。OK,那么唯一过后,那那如果我们在这个地方里面。我们这个地方里面去把这个图片请求过后,那么我们。把它发出去,那么以后我该显示在。显示在这张图片该怎么显示呢?是我们同样你把这个位置发发过来,是不是我也我我在这个地方里面也位置也发出去,然后你就根据这个位置去找,你看隶属you里面它有个方法,Find find you this by tag,这个就根据这个tag存过来,就可以找张图片。
23:08
注意哦,注意哦,你看啊,那我想要找到这张图片,怎么找啊,是把一个二传进来,它返回一个视图,其实就是这样图片了。明白了吗?明白没有,一会我们会用到这个方法,历史中的注意古内有也有,然后去根据这个T去找。因为我这条是是做一个什么事情呢,设置了。那这一块是假如这块是一个联网请求,那么这时候我发的时候也发这个位置发发过来,发过来过后你到了后就去请求啊,对不对?好,其实我们可以把这张图啊稍微做一个,呃,再做的好看一些。就是说我在这个地方里面。啊,得到了图片,那么这个时候我发消息的话,我就这么发。
24:05
就是第一发的内容,第一有谁啦失有可能是0101234567啊好电它有B的什么卖出好就发这两个,那发出去过后,你是不是可以根据这个位置去找到这个图片呢。你一发等到这里来,然后这个方法懂又找到这个来,懂又找到它,懂又找到它,等又找到它,等找到它,你发什么,你发零。你发零就找到他,你发一就找到他,你发二就找到谁啊找到他,这样的话就你发的同时是有把这个发出去啊的话,就就能显在这个空间,这样的话还错位吗?他就不错位了,明白了吗。
25:04
明白了吗?就这么一个道理,好,同学们,接下来我们是吧,我们怎么了啊,好,那这个时候注意,我们在这个地方里面把bit map已经传进来了。已经存进来,这这就已经把hand存进来了,接下来还差一个什么,还差一个什么好,那这个时候我就要在这个地方里面盖的手是顺便把谁呀,把盆戳进来。好,那这个时候就相当于加上这个参数吧。好OK,传进来过后还不要忘了这个也要设置一个什么。设什么设tag好,那这时候呢,我们还去设置一个T,好,我们就在,嗯,在这里吧,好设置一个什么TT是什么,是不是这样的好,那么有了过后我们就存进来。
26:09
结婚从业的目的就是发出去吧。对不对,因为你存过来会有还我还发出去呢,好,那这个时候点进去好类型,那接下来在什么。类型好,这个方法加一下,好,那有个后这个位置也把它什么加到各种方法里面。好,然后这个有了过后,这个地方里面要接收一下。好,然后把它给创建出来。转出来好,那接下来我发这个时候我就发发这个消息发出去和什么类型,这也发出去,这样的话就很牛了,这样的话就能够找到了,好那接下来我们就要去发hand了,然后剩的剩的注意剩的一个什么message,是message带数据啊,你发这个是不是就是一个硬的类型啊,要发谁啊message好把这麦机呢给什么创建出来。
27:22
这个方法的话是什么意思啊,是他去去我们的队列中去取呀。最终取取空的一个消息,好,那么这个时候呢,你就what what的话就是成功了吧,Success。好成功,然后这个把改为什么大写把它创建出来。好,那么这时候呢,唯一好这个改为public,到时候我们其他地方用到这是请求图片,什么请求图片成功好那么大家想想,请求图片成功就肯定有失败了,一会我们还用是吧,好,Message好,还把这个位置发出去吧,好那我们就是二一放在这里怎么问题吧,好最重要的就是我们的什么图片。
28:22
放在哪里啊object,那这个时候就是什么,是把这个最终把它发出去了,好那么这是成功的,如果是是报错啊好,那这个时候我们就要把失败发出去,失败的时候这个图片还有吗?没有了,这个时候就这就失败这个单词失败,然后把它给串出来。好,那这个就是改为,然后就是请求图片什么失败这问题吧。
29:00
好,那这时候呢,就把这个失败发出去,位置是照发出去啊好。那么这个时候就是要做这种事情。发出去过后,最后他会跑到哪里来?它会好跑到这个的这里来,注意它会跑到这个类的这个的来,因为你在哪里溜的。在这里溜的,注意这是一六,看到了吗?好,那发过来后我就写一个语句了。语句。好,然后message为什么位置啊,然后case,然后就是我们的网络缓存。Night。啊看去好哎呀啊,我看看啊,这是帕科啊行,那这样吧,我就直接写,然后这个是什么成功有成功就什么十块对吧F好,那么这就是图片请求成功,图片请求失败对吧?好那么在我们这个地方里面的话呢,好这个时候得到的,我们先把这位置和什么得到和图片得到吧。
30:32
好,那么类型好。那么等于我们的message,然后这有一个一是吧,好beat map等于啊message的一个什么键好,要需要什么旋转好,那接下来我们在这个过程中,我们可以打日志。
31:06
啊,这个联网请求图片成功,好,那么这是要把位置打印出来吧类对吧,好,那失败还是要打位置啊,好失败。好,那这个失败的话呢,那么我们也是要去得到它这问题吧。好,那么有了后,同学们在我们这个地方里面的话呢,失败也有了,成功有了,好,那么如果成功,如果失败,我们就打个日志,不不做什么事吧,因为它默认是已经有缓存图片了,这些默认有个默认图片,我们不用需要处理了。默认图片了,那么如果成功,我们就这样子。这是什么啊,好,那这时候我们要去啊,有个方法叫什么。
32:05
You by什么T?好,这个T之前我们设置T,大家想想get这里。设置T的时候是什么呀?是什么类型的,是硬的类型的,那现在我们去取的时候也一样啊。好,那这组的话就是什么也是吧,好,那么它返回的是一个什么。没什么,是不是IVI看吧这问题吧,是不是。哎,你看啊,这怎么就不声音这么小呢,这不是这不是,这不是没没有用吗?是不是好都不敢说啊,对不对,那么有了过后呢,我们要做这样的一个事情,注意这个哥们不能等于空,是有可能会为空啊,所以要小心,还有B的map也要判一下空,这小心使得万年船对吧。
33:12
好,然后的话嘞,在我们这个地方里面啊,不等于空,好,我们就把这个地方去set map,把那个什么存进去,把那b map存进去直接就可以了,好,那么也就是说我们还要做这样的一个事情,就是说一。秀如果是历属U显示的话,我们就做这样的一个事情,所以我这这个类里面是有历史有咕噜you啊,那不得切换了,好,那如果是Lu显示呢,那这个就是改为什么。好这个嘞,改为什么就可以了,它不可能两个都同时显示吧,对不对,好那么这样的话呢,就很好了啊很好了,然后来我们这个地方成功失败都答了,好,那我故意把这个。
34:10
干掉。啊干掉,那你觉得现在都是失败的,拟都这个务器都干掉了,你定失败的啊看好。他。拎起来,现在肯定是行,我们先让大家看失败,失败了走对了没有啊,然后点一下互动。大家可以看一下啊。啊,我们还没有滑动呢,好失败。好,那打那个日志出来吗?哎,是这个有了啊,请求图片失败啊,这请求这三请求失败啊,这个四请求失败啊,五情就失败啊,六情失败是不是没问题啊,好,那么既然失败了过后呢,那我把服务器开起来。
35:09
好拉一下就可以了,就可以了,哇塞,是不是咱们自己做的对不对,搞定了吧,同学们当当就连网请求成功了对吧。是不是啊,那假如我把服务器断掉,我再往下。再往下还有那如果退出呢,退出呢,好,那现在再退出呢。你们觉得还有吗?啊,你觉得还有吗?有吗?没有吧,是这没有做缓存呢,刚才为什么网断了,还有啊,它是内部,他也有点小小的缓存,知道吧,就它它是内,就是说内部的有一个缓存啊,但是这样的话一退就不行了。对不对。一退就不行了,那么也就是说我们只要把网打开。
36:01
好,这哥们呢,又好了,想把。好就可以了,好,那同学们刚才我们所做的这个事情是什么呀?就是我们3G缓存中的什么呀。网络网络缓存,那网络缓存的话,大家想想,我们大家可以分享我们的代码,其实我们这个代码还可以进一步做一些小小的优化,为什么呢?因为大家看一下在我们这个地方里面有一个get get you get you里面呢,大家可以看一下在get you这里面你看啊。在get里面,我们去请求的话,每请求一次,他就了这个方法,每次就录一个什么。线程的,你每用一个线程是比较消耗资源的,这个时候呢,我们可以用到一个类,这个类叫线程池类,系统提供我们的。好,我们用一下,好这个时候呢,一什么呀,Cut好它呢,可以去注意它这个地方里面,你看它可以创定指定的线程。
37:10
也可以创建就是缓存的一个线程词,这个创建固定的线程词,就是有多少个线程,但这个呢,一般的话就是如果你短时间,短时间要有很多的并发请求,你用它,它会默认好像是啊,我记不住了,好像大概是50个线程,但是我们其实用不着找握这么多改为多少啊,十个就可以了,然后这两个方法里面,这两个方法里面用的比较多,那么这两个方法我们你给他介绍一下,感兴趣可以自己去看略介绍一下。啊,不占点赞一件事,这两个方法有什么区别呢?给大家看一下这个方法,大家看好它创建一个可以根据需要创建新线神值的线程池。好,我就主要主要来看红的地方啊,红的地方我标识了,就重要的就是对于执行很多短期异步任务而言啊,短期异步任务的程序而言,这些线程词通常可以提高什么程序的性能啊,这这就就就短期就短期很多的啊,这种异步的那么呢,它提高神经性能。
38:25
还有就是大家注意,那既然我们创建这么多线程,如果一直一直存在是消耗资源的,就是它有一个机制,就是如果现有线程没有可用的,则创建一个新的线程池,被啊创建一个新的线程,并添加到线程池中。好,就是如果没有可用的,就是说我创建了50结果的话。发现了这50个都忙死忙活了,已经在干其他事情了,这时候呢,他就什么会创建一个新的啊放到里面,那么那么有了过后呢,如果说终止并从缓存中移出那些已有60秒未被使用的,就是如果有一个线程。
39:08
如果有个线程,它60秒都没有被用到,这个线程就被什么被移除,所以的话呢,它性能是不是也是有一定的控制啊,好,我们再看一下这个,这个它创建一个可用的固定的词,那固定那什么就什么,那我们就用啊下面这个啊,就这点区别啊,那么这个但是也会做一些优,就是十秒没还没用。就会被移除对吧,那我们接下来就创建十个,它返回一个什么呢?线程词服务类,好然后它这里面有一个方法第做什么也是Q的,你Q的是可就可以执行什么loable了吧,好那么把它给。啊,复制过来好,那这个代码还需要吗?复写了,但是每次执行就每次就创建,我们没必要吧,那怎么办?在构造器中啊好在过一中好,那么这是一个线程词浮类。
40:23
好,然后注意要把这哥们呢。剪切到勾到方法这里来,好这样子明白吧,好,那么这个时候呢,穿点固定的,这时候就有了,好,那我们如果现在再去运行的话呢,它照样是可以的啊,照样可以啊。那照样可以显示,那如果是照样可以先显示的话,那肯定就是啊。就就是说这个我们就选对了呗,是吧,好运起来。
41:00
好,点击这个地方。是这样可以啊,看到没有请求成功是不是搞定了,好,那同学们这其实就是我们所讲的什么呀啊,就是网络缓存啊,三图片缓存中的这个网络缓存,把视频呢保存。
我来说两句