hifive / hifivemain

main repository
http://www.htmlhifive.com/
Other
40 stars 10 forks source link

h5.ui.jqm.manager JQMのpageshow/pagehide相当のイベントをhifiveでディスパッチする #169

Closed mtakeuchi closed 10 years ago

mtakeuchi commented 11 years ago

Aページ表示後、Bページに遷移するパターンでトランジションありで遷移した場合、Bにdefineしたコントローラでpageshow/pagehideを拾うことができるが、トランジション無しで遷移すると、Bにdefineしたコントローラでpageshowやpagehideを拾うことができない。 ページの生成・破棄のタイミングはhifiveのライフサイクルイベントで知ることができるが、ページの表示・非表示のタイミングは知ることができないため、コントローラが有効または無効になったときにJQMマネージャでpageshow/pagehide相当のイベントを起こすようにする。

hifiveのイベントとJQMのイベントの発生タイミング

JQM ver.1.2.0 id:要素 type:イベント名

mtakeuchi commented 11 years ago

A -> B遷移後、 B -> A に戻った場合

戻った場合はトランジションの有無で違いなし。

mtakeuchi commented 11 years ago

A -> B -> C

id:BODY type:pagebeforechange id:BODY type:pagebeforeload id:C type:pagebeforecreate id:C type:pagecreate id:C type:pageinit id:BODY type:pageload id:BODY type:pagebeforechange id:B type:pagebeforehide id:C type:pagebeforeshow id:C type:h5controllerbound id:C __ready id:C type:h5controllerready id:B type:pagehide id:B type:pageremove id:B type:h5controllerunbound id:C type:pageshow id:BODY type:pagechange

mtakeuchi commented 11 years ago

h5jqmpageshowとh5jqmpagehideの発生順序 (仮

mtakeuchi commented 11 years ago

h5jqmpageshowとh5jqmpagehideの発生順序 (トランジションにアニメーションが適用されている場合

h5jqmpageshow = JQMのpageshowとほぼ同じタイミングで発生 h5jqmpagehide = JQMのpagehideとほぼ同じタイミングで発生

mtakeuchi commented 11 years ago

h5jqmpageshowとh5jqmpagehideの発生順序 (トランジションにアニメーションが適用されていない場合

h5jqmpageshow = JQMのpageshowとほぼ同じタイミングで発生 (初期表示時は、JQMコントローラがreadyになるよりも前にpageshowが発火してしまうため、h5controllerready後に発生する) h5jqmpagehide = JQMのpagehideとほぼ同じタイミングで発生

mtakeuchi commented 11 years ago

pageshowがJQMコントローラのバインドよりも早く実行されたときの挙動

  1. h5jqmpageshowイベントは、readyの完了(h5controllerreadyが発火)を待ってから1回だけ実行する。 (AのコントローラのreadyでPromiseが返され、__readyの処理が完了しないうちにA->B->Aと遷移した場合でも、Aのh5jqmpageshowは1回だけ実行される)
  2. 1.以降は、JQMのpageshowと同じタイミングでh5jqmpageshowを実行する。

なお、アクティブページでのみh5jqmpageshow/hideは実行される。