前言
内心独白:“图片加载完成会触发 onload() 函数,可是这次业务场景里这个图片的链接是动态的,有空为空,为空的话不但加载不出来图片,还不能触发 onload() 函数,可是当前整个前端图片导出组件都依赖这个 onload() 函数,这个函数算是整个组件的起点,如果起点带有不确定性,整个组件如何稳定运行呢?”
正文
“有没有一种方式,比如加一个定时器,30 秒之后自动跳过初始化逻辑,执行 onload() 函数后头的逻辑”
尝试了一下,由于定时器是异步的,一个作品导出之后,遇到一个没有 onload() 函数的空图片,由于触发了前端框架 (React) 的重复渲染,会经常连续点击,数据错乱了。现象有点像并发模式里的抢占内存(在 Go 语言里叫 data race)。
最近我在前端异步操作的处理上稍有进步,终于明白怎么用 Promise 里,真是难得(进步得益于最近的前端爬虫实践,回头看以前代码里海量错误使用的方式,真想劈了当初的自己)。但考虑到要重构大量的老代码,有点望而却步。
今天工作时间爆表
灵光一现的感觉,真的特别美妙,突然的一下,想法来了个180度转弯!
“你不就是缺一个张图片,服务端没提供吗?可以自己构建一个透明图片啊,占个位不就得了……”(这里有必要说明一下,之前的想法是如何增加代码逻辑处理没有图片的新场景,现在变了,变成如何构建一张占位图片来契合原先的旧场景)。
这个转变非常的美妙(一时半刻还没吃透),沉浸在其中的同时,立马把在脑海里打了个断点,把这个感受记录下来。因为工作的需要,工作还不能停,但感受稍纵即逝。