New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

コントローラバインドの高速化 #330

Closed
fukudayasuo opened this Issue May 28, 2014 · 0 comments

Comments

Projects
None yet
2 participants
@fukudayasuo

コントローラのバインド処理のリファクタや、コントローラ化に必要なものをキャッシュするなどして、高速化を図る。

fukudayasuo pushed a commit to hifive-labs/hifivemain that referenced this issue May 28, 2014

fukudayasuo
#330 キャッシュを利用するようにしました。
h5.core.controllerCacheManager及びh5.core.logicCacheManagerの作成。

fukudayasuo pushed a commit to hifive-labs/hifivemain that referenced this issue May 29, 2014

fukudayasuo
#330 以下リファクタを行いました。
controllerManager,controllerCacheManager,logicCahceManagerを先頭で宣言してキャッシュ化
controller/logicCacheManagerを一旦非公開にしました。
controllerPropertyMapは値にnullを持つマップにして、key inでチェックするようにしました。
(その方が早いため)
isChildLogic内の不要な変数宣言を削除
createBindObjは必ず配列を返すように修正し、createBindObjectsにリネームしました。
registerUnbindList->registerWithUnbindListにリネーム
getXXXBindObj → getXXXBindObjectsにして、配列を返すようにしました。
bindByBindObjectは第3引数にdocumentを受け取るようにして、毎回getDcoumentOfを行わないでいいようにしmさいた。
bindByBindObject内の変数event→eventNameに変更
cacheManagerのregisterはDefObjを受け取って、作成、登録を行うようにしました。
cacheManager.createでのプロパティアクセスを減らしました。
コントローラのcacheはControllerCacheEntryクラスのインスタンスにしました
createAndBindController内でのプロパティアクセスを減らしました。

fukudayasuo pushed a commit to hifive-labs/hifivemain that referenced this issue May 29, 2014

fukudayasuo
#330 bindObjectsは常に配列なので、配列かどうかの判定文を削除。
CacheManager.clearAll()はthis._cacheMap = [];するだけにしました
wrapHandlerの呼び出しで、bindObj.controllerをキャッシュしてプロパティアクセス削減するようにしました。

@simdy simdy added this to the v1.1.11 milestone May 29, 2014

fukudayasuo pushed a commit to hifive-labs/hifivemain that referenced this issue May 29, 2014

fukudayasuo pushed a commit to hifive-labs/hifivemain that referenced this issue May 29, 2014

fukudayasuo
#330 unbindするときのeventNameはbindObjから取得するようにしました。
(bindObj.eventNameはDOMMouseScrollで、eventHandlerInfo.eventNameはmousewheelの場合にunbindできないバグがありました)

event -> eventName に変数名を変えました。

fukudayasuo pushed a commit to hifive-labs/hifivemain that referenced this issue May 29, 2014

fukudayasuo
#330 cacheManagerのclear/clearAll()を外部公開しました。
controllerとlogicのcacheManagerを統合しました。
LogicCacheEntryクラスを作成しました。
childLogicProperties->logicPropertiesに変更

fukudayasuo pushed a commit to hifive-labs/hifivemain that referenced this issue May 29, 2014

fukudayasuo pushed a commit to hifive-labs/hifivemain that referenced this issue May 29, 2014

fukudayasuo pushed a commit to hifive-labs/hifivemain that referenced this issue May 30, 2014

fukudayasuo pushed a commit to hifive-labs/hifivemain that referenced this issue May 30, 2014

fukudayasuo
#330 selectorTypeConst→SELECTOR_TYPE_CONSTにして、定数扱いにしました。
xxxEach -> doForEachXxx に名前変更 (childControllerEach等)
typo修正 aquireFromControllerContext -> acquireFromControllerContext
createCallbackForInit内のisDisposedのチェックが不要なタイミングでされていたものについて削除
(__controllerContextを辿る前と、__init実行後の2つのタイミングでチェックがあればよい。)
initInternalProperty内の変数名が間違えていた箇所を修正。

fukudayasuo pushed a commit to hifive-labs/hifivemain that referenced this issue May 30, 2014

fukudayasuo
#330 h5.async.isPromiseをキャッシュ。
waitForPromisesで、
 promisesLength===0ならdoneを呼んで即returnするようにしました
 checkedPromises -> monitoringPromisesにリネームしました

fukudayasuo pushed a commit to hifive-labs/hifivemain that referenced this issue Jun 2, 2014

fukudayasuo
#330 globalに漏れていた変数を修正。(lifeCycleThis, conIns)
h5test空間はjqmが使用しているため、eventTargetTestに名称変更。

@simdy simdy closed this Jun 3, 2014

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment