OSDN Git Service

Version 0.6.134, add comments for closure compiler.
[pettanr/clientJs.git] / 0.6.x / js / 01_core / 15_XSystem.js
index fbb8fe0..3b0e9df 100644 (file)
@@ -1,25 +1,70 @@
 \r
+var \r
+       X_System_postMessageAccessKey = window.postMessage ? Math.random() * 10000 | 0 : 0,\r
+       \r
+       X_System_MESSAGE_RECIVERS = X_System_postMessageAccessKey && {},\r
 \r
-var X_System = X.Class._override(\r
-       new X.EventDispatcher(),\r
-       {\r
-               monitor : function(){\r
+       X_System = X_Class_override(\r
+               X_EventDispatcher(),\r
+               {\r
+                       monitor : function(){\r
+                               \r
+                       },\r
+                       \r
+                       gc : function(){\r
+                               \r
+                       },\r
                        \r
-               },\r
-               \r
-               gc : function(){\r
+                       message : function( name, callback ){\r
+                               var key = Math.random() * 10000 | 0;\r
+                               if( !X_System_postMessageAccessKey ) return;\r
+                               // name にスペースは含まない\r
+                               X_System_MESSAGE_RECIVERS[ name + key ] = callback;\r
+                               X_ViewPort[ 'listen' ]( 'message', X_System );\r
+                               \r
+                               return X_System_postMessageAccessKey + '-' + name + key;\r
+                       },\r
                        \r
+                       handleEvent : function( e ){\r
+                               var i, _i, name;\r
+                               switch( e ){\r
+                                       case 'message' :\r
+                                               if( e.origin === X.URL.BASE_URL ){\r
+                                                       i = e.data.indexOf( '-' );\r
+                                                       console.log( 'msg ||| ' + e.data.substr( 0, i ) );\r
+                                                       if( e.data.substr( 0, i ) == X_System_postMessageAccessKey ){\r
+                                                               name = e.data.substr( i, _i = e.data.indexOf( ' ' ) );\r
+                                                               if( X_System_MESSAGE_RECIVERS[ name ] ){\r
+                                                                       X_System_MESSAGE_RECIVERS[ name ]( e.data.substr( _i + name.length ) );\r
+                                                               };\r
+                                                       };\r
+                                               };\r
+                                               console.log( e.origin + ' ' + X.URL.BASE_URL );\r
+                                               \r
+                                               return X_Callback_PREVENT_DEFAULT | X_Callback_STOP_PROPAGATION;\r
+                               };\r
+                       }\r
                }\r
-       }\r
-);\r
+),\r
+\r
+X_System_javascriptScore;\r
+\r
+// beforeunload\r
+// unload\r
 \r
 X_TEMP.onRearchEndOfScript = function(){\r
-       var cbs = X_TEMP.onSystemReady,\r
-               i = cbs.length;\r
+       var callbacks = X_TEMP.onSystemReady,\r
+               i     = callbacks.length,\r
+               now   = X_Timer_now(),\r
+               speed = now - X.bootTime;\r
+       \r
+       X_System_javascriptScore = speed;\r
+       console.log( 'js score ' + speed );\r
+       \r
        delete X_TEMP.onRearchEndOfScript;\r
        delete X_TEMP.onSystemReady;\r
        \r
        for( ; i; ){\r
-               cbs[ --i ]( X_System );\r
+               callbacks[ --i ]( X_System );\r
        };\r
 };
\ No newline at end of file