什么是异步加载

什么是异步加载,第1张

加载数据时仍然执行其他程序,通常加载时是不执行程序的,我们不得不等进度条,因为很多程序在没有加载数据时,可能是无法运行的,所以通常会加载完之后才运行。

异步加载就是在执行过程同时加载,通常会使图片之类重要性较次的东西,可以先忽略掉,比如网页游戏经常会在玩的过程中,玩家都是黑影(未加载图形,由其他黑影模型代替),如果另一个线程完成加载了,在贴上去,就是异步

动态加载和静态加载指的是什么时候加载 ,动态加载是运行时加载(CommonJS),静态加载是编译时加载(ES6)。当然es6也提供的动态加载,即import() 。

同步加载还是异步加载指的是加载的方式。 静态加载中都是同步加载的。动态加载中CommonJS的require是同步的。而es6import()是异步的。

异步加载的优点就是,加载大量资源的时候是后台加载,而不是像同步加载那样,直接卡住.影响软件体验.

Start()方法直接调用:

void Start ()

    {

        noteLoading.GetComponent<Text>().text = "加载中,请稍候..."

        StartCoroutine(LoadingPicFunc_0())     

    }

协程的返回值:

IEnumerator LoadingPicFunc_0()

    {

        for (int i = 0i <601i++)//

        {

            string path = "pic/c_00" + i.ToString().PadLeft(3, '0')//Resources文件夹下的路径,末尾一般是数据,0补齐.例如:00031

            ResourceRequest request = Resources.LoadAsync(path)

            yield return request

            if (request != null)

            {

                if (request.isDone)

                {

                    print(i.ToString())

                    Texture tex = request.asset as Texture

                    logoList.Add(tex)//加入到申明的数据列表

                    noteLoading.GetComponent<Text>().text ="正在加载第"+ i.ToString()+"张"

                }

            }

        }

        noteLoading.SetActive(false)

        isStartPictureAnim = true

    }


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5787888.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-01-31
下一篇 2023-01-31

发表评论

登录后才能评论

评论列表(0条)

保存