=========================================================================== cmpnt/main/unit/admin/CClient/CClient.class.php --------------------------------------------------------------------------- run()で tpl.html.inc.php を読む --------------------------------------------------------------------------- public static function run(){ echo CTpl::load("html",__DIR__."/"); } =========================================================================== cmpnt/main/unit/admin/CClient/tpl.html-head.inc.php --------------------------------------------------------------------------- CClient::resources() が実行される --------------------------------------------------------------------------- =========================================================================== cmpnt/main/unit/admin/CClient/CClient.class.php --------------------------------------------------------------------------- CCLoad::load($settings) が実行される --------------------------------------------------------------------------- CCLoad::load($settings); =========================================================================== js code --------------------------------------------------------------------------- Sys.run() が実行される --------------------------------------------------------------------------- =========================================================================== cmpnt/main/lib/base/CSys/CSys.js --------------------------------------------------------------------------- Sys.run() 内でCUnit()が実行される --------------------------------------------------------------------------- function run(){ CUnit(); }; =========================================================================== cmpnt/main/unit/admin/CUnit/CUnit.js --------------------------------------------------------------------------- The reload cmd と onDOMloaded の両方が返ってきた時にpromise_runが走る。 If there is a session, the reload cmd は page_hbfのテンプレートを読み込んでくる。(CAuth.class.php) If there is no session, then SysEvs.bind("sys-session-end",function(data)が呼ばれて logoutする。 --------------------------------------------------------------------------- function CUnit(){ let page=null; let promise_count=0; function promise_run(){ promise_count++; if(promise_count>=2){ ScreenCover.enable(); PageStack.open(page); } }; function reload(){ // logout SysEvs.bind("sys-session-end",function(data){ var requ={ cmd:"logout" }; Sys.ajax(requ,function(resp){ CmdParam.clear(); page=resp.page; promise_run(); }); }); // reload const requ={ cmd:"reload" }; Sys.ajax(requ,function(resp){ // CGad.load(resp); page=resp.page; promise_run(); }); }; function domLoaded(){ document.addEventListener("DOMContentLoaded",function(e){ const el_pagestack=$(".pagestack"); PageStack.init({ el_control:el_pagestack }); promise_run(); }); }; function init(){ reload(); domLoaded(); }; init(); }; =========================================================================== cmpnt/main/lib/base/CSessionCheck/CSessionCheck.js --------------------------------------------------------------------------- If there is no session, then timeout is 0, so SysEvs.trigger("sys-session-end") gets executed. --------------------------------------------------------------------------- SysEvs.bind("sys-ajax-resp",function(resp){ if("timeout" in resp){ if(resp.timeout){ if(timer_id){ clearTimeout(timer_id); } timer_id=setTimeout(function(){ Sys.ajax({cmd:"session-ping"}); },(resp.timeout+1)*1000); }else{ SysEvs.trigger("sys-session-end"); return false; } } if(resp.session){ SessionToken.setToken(resp.session.token); } }); ===========================================================================