2017-05-10 47 views
0

我有一個Web應用程序,它首先加載需要1-10秒的數據。什麼是一個很好的簡化模式來啓動一個開始下載數據的應用程序

我在應用程序啓動後立即顯示完整的UI(地圖),然後在後臺啓動下載。

在下載數據時,我想延遲一些效果,如顯示路線和搜索結果)。

加載數據時會執行任何動作(例如用戶類型搜索術語)加載數據後

所以:

App Starts 
     forks data download in background 
     shows UI 
     lets user type -> debounce --> execute only after data has downloaded 
     show more (route etc.) once download is complete 

我們如何在佐賀做到這一點 - 我相信這是最強大的框架來完成這樣的任務。我沒有看到這是標準模式之一,但我認爲這將是非常普遍的。

回答

0

怎麼是這樣的:

function* fetchInitData(){} 

function* setupLocale(){} 

function* submit(value){ 
    while(yield !select(state=>state.started)){ 
     yield delay(100); 
    } 
    yield call(fetch,...) 
} 
function* startSaga(){ 
    yield all[ 
     call(fetchInitData), 
     call(setupLocale), 
     delay(3000) // Wait at least 3 seconds 
    ] 
    yield put({ 
     type: "APP_STARTED", 
    });  
} 

只需使用{started:false}初始化終極版商店應用,減少APP_STARTED行動。

相關問題