2017-05-10 1 views
0

最初にデータをロードするウェブアプリケーションが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 

私たちは佐賀でこれを行うにはどうすればよい - 私は、このようなタスクを達成するための枠組みの中で最も強力であると考えています。私はこれを標準的なパターンの1つとして見ませんでしたが、私はそれが非常に一般的であると思います。

答えて

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行動を減らします。

関連する問題