第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

JS如何同步阻塞地加載圖片

JS如何同步阻塞地加載圖片

拉莫斯之舞 2018-07-21 22:08:59
問(wèn)題描述如果我們加載一張圖片的時(shí)候,我們常常會(huì)寫(xiě):let image = new Image(); image.onload = () => {    // deal with downloaded image}; image.src = path;但是這樣的的過(guò)程顯然是異步回調(diào)的。請(qǐng)問(wèn)在用原生js的前提下,有沒(méi)有同步阻塞的寫(xiě)法呢?更新有人問(wèn)問(wèn)題背后的問(wèn)題,嗯……問(wèn)題背后當(dāng)然是有問(wèn)題的,要不然我也不會(huì)費(fèi)這么大力氣同步。我在用webgl寫(xiě)渲染,隨著demo越來(lái)越大,代碼也變得越來(lái)越丑陋。于是就想著封裝。假如一個(gè)場(chǎng)景中有一個(gè)物體Car,那么我希望代碼可以簡(jiǎn)答粗暴地寫(xiě)成如下的樣子:let car = new Car();function render() {     car.draw();     requestAnimationFrame(render); } requestAnimationFrame(render);但是這就要求在Car類內(nèi)部需要處理好所有的加載問(wèn)題。class Car {    constructor() {        // load shader         // load texture     }     draw() {        // use shader and texture to render     } }在構(gòu)造函數(shù)中加載,而draw依賴于構(gòu)造函數(shù)中加載的完成??梢钥紤]用Promise,但是很慚愧我對(duì)Promise這一套還不甚熟悉。而且很不確定是否能和webgl混在一起用。如果有人了解的話并回答的話,非常感謝!
查看完整描述

2 回答

?
一只名叫tom的貓

TA貢獻(xiàn)1906條經(jīng)驗(yàn) 獲得超3個(gè)贊

后來(lái),題主重構(gòu)代碼時(shí),選擇在一開(kāi)始用Promise并發(fā)加載所有素材,然后再開(kāi)始渲染,之后的邏輯就全部串行做。

查看完整回答
反對(duì) 回復(fù) 2018-07-28
?
守著星空守著你

TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超8個(gè)贊

用XHR自己阻塞地下載圖片, 下載后從blob生成data uri或blob url, 設(shè)置上去

其實(shí)沒(méi)有什么好處..


查看完整回答
反對(duì) 回復(fù) 2018-07-28
  • 2 回答
  • 0 關(guān)注
  • 2783 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)