X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=0.6.x%2Fjs%2F01_core%2F15_XSystem.js;h=3b0e9df0b08971ac63f0f26d6adee1c85ee51151;hb=d836e6243878426d4cfd7a14ceb9b77db9f92b57;hp=fbb8fe06d229fb541694463225b95cf4274203c0;hpb=003fff3f160afb3e3a2cceb3d20b19a17977e94d;p=pettanr%2FclientJs.git diff --git a/0.6.x/js/01_core/15_XSystem.js b/0.6.x/js/01_core/15_XSystem.js index fbb8fe0..3b0e9df 100644 --- a/0.6.x/js/01_core/15_XSystem.js +++ b/0.6.x/js/01_core/15_XSystem.js @@ -1,25 +1,70 @@ +var + X_System_postMessageAccessKey = window.postMessage ? Math.random() * 10000 | 0 : 0, + + X_System_MESSAGE_RECIVERS = X_System_postMessageAccessKey && {}, -var X_System = X.Class._override( - new X.EventDispatcher(), - { - monitor : function(){ + X_System = X_Class_override( + X_EventDispatcher(), + { + monitor : function(){ + + }, + + gc : function(){ + + }, - }, - - gc : function(){ + message : function( name, callback ){ + var key = Math.random() * 10000 | 0; + if( !X_System_postMessageAccessKey ) return; + // name にスペースは含まない + X_System_MESSAGE_RECIVERS[ name + key ] = callback; + X_ViewPort[ 'listen' ]( 'message', X_System ); + + return X_System_postMessageAccessKey + '-' + name + key; + }, + handleEvent : function( e ){ + var i, _i, name; + switch( e ){ + case 'message' : + if( e.origin === X.URL.BASE_URL ){ + i = e.data.indexOf( '-' ); + console.log( 'msg ||| ' + e.data.substr( 0, i ) ); + if( e.data.substr( 0, i ) == X_System_postMessageAccessKey ){ + name = e.data.substr( i, _i = e.data.indexOf( ' ' ) ); + if( X_System_MESSAGE_RECIVERS[ name ] ){ + X_System_MESSAGE_RECIVERS[ name ]( e.data.substr( _i + name.length ) ); + }; + }; + }; + console.log( e.origin + ' ' + X.URL.BASE_URL ); + + return X_Callback_PREVENT_DEFAULT | X_Callback_STOP_PROPAGATION; + }; + } } - } -); +), + +X_System_javascriptScore; + +// beforeunload +// unload X_TEMP.onRearchEndOfScript = function(){ - var cbs = X_TEMP.onSystemReady, - i = cbs.length; + var callbacks = X_TEMP.onSystemReady, + i = callbacks.length, + now = X_Timer_now(), + speed = now - X.bootTime; + + X_System_javascriptScore = speed; + console.log( 'js score ' + speed ); + delete X_TEMP.onRearchEndOfScript; delete X_TEMP.onSystemReady; for( ; i; ){ - cbs[ --i ]( X_System ); + callbacks[ --i ]( X_System ); }; }; \ No newline at end of file