nexacro platformアプリが実行されるプロセスは、以下のとおりです。
bootstrap
Applicationをロードするために関連情報を処理し、必要なリソースを取得するプロセスを説明します。このプロセスをブートストラップと表現します。
WRE | NRE | |
---|---|---|
1 | index.html | start.json start_android.json start_ios.json |
2 | get bootstrap info | |
3 | update engine | |
4 | update resource (data) | |
5 | load framework files | |
6 | load component modules | |
7 | load Application |
一般的に、ブートストラップは、コンピュータが外部入力なしで、自ら開始する準備をするプロセスを意味します。主にメモリに含まれる情報に基づいて動作し、起動(booting)と表現することもあります。
https://en.wikipedia.org/wiki/Bootstrapping
nexacro platform アプリの実行プロセスで使用されるブートストラップという用語は、アプリを開始する準備をする過程という表現を含んでいます。
Applicationロード
アプリケーションを実行するためにApplicationに接続されたフォームをロードするプロセスは、下記のとおりです。
ロード順序 | イベント発生 | |
---|---|---|
1 | Environmentロード | |
2 | Screen選択(Screen情報が2つ以上である場合) | |
3 | Screen環境情報ロード | |
- 選択されたScreen情報をscreenidプロパティ値として指定したAppの確認 | ||
- Applicaitonオブジェクト生成 | ||
4 | Environment設定処理(Typedefinition、プロパティ、Variables) | |
Environment.onload | ||
5 | テーマロード(css、map.jsファイル) | |
6 | Initvalueファイルロード | |
7 | Applicationロード(*.xadl.jsファイル) | |
- Applicationプロパティ設定 | ||
Application.onloadingappvariables | ||
- Mainframe生成と初期化 | ||
MainFrame.onactivate | ||
- Frame生成と初期化 | ||
ChildFrame.onactivate | ||
Application.onload | ||
8 | Formロード(*.xfdl.jsファイル) | |
Form.oninit | ||
Form.onload | ||
Form.onactivate | ||
Application.onloadforms |
ロード順序によって生成されていない項目は使用できません。
たとえば、onloadtypedefinitionイベント関数内にてAppVariablesにアクセスした場合、undefinedに表示されます。
this.Environment_onload = function(obj:nexacro.Environment,e:nexacro.LoadEventInfo) { trace(nexacro.getApplication().all['Variable0']); //undefined }
フォームロード
前項で説明したApplicationのロード項目で「Formロード」から「Form.onloadイベント発生」との間のプロセスの詳細は以下の通りです。
Formロード
Form実行
サブファイルのダウンロードと実行
Form初期化
Form Styleプロパティ設定
Formプロパティ設定
オブジェクト、コンポーネント、バインドアイテム(BindItem)の生成
エンジン内部で処理するスクリプトを実行
イベントハンドラの登録
オブジェクト、コンポーネントメソッド呼び出し:
Object.createComponent
イベント発生:
Form.oninit
メソッド呼び出し:
Form.on_created
オブジェクト、コンポーネントメソッド呼び出し:Object.on_created
イメージロード、transaction処理
イベント発生:
Form.onload
サブファイルは、include方式で接続されるスクリプトファイルなどを意味します。
Formに含まれたオブジェクト、コンポーネントは指定された Z-Order順に生成します。
div、tabコンポーネントは、urlプロパティにリンクされている Formを取得するネットワーク速度によってロードが終わる時点が異なることがあります。