X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=0.6.x%2Fjs%2F01_core%2F01_X.js;h=8f84e890fb2ac5bde5cdfebd0bd6e4e335ba27a4;hb=HEAD;hp=fabeeebc22b01070e2a53ebd352ea97307065bea;hpb=9e30a8480de03f0b36d2411a0ecb7f1d0f47b61f;p=pettanr%2FclientJs.git diff --git a/0.6.x/js/01_core/01_X.js b/0.6.x/js/01_core/01_X.js index fabeeeb..8f84e89 100644 --- a/0.6.x/js/01_core/01_X.js +++ b/0.6.x/js/01_core/01_X.js @@ -1,38 +1,17 @@ + /** - *

はじめに:Web 開発の世界へようこそ!

- * DHTML と XHR 等を活用した Ajax によってその真価を発揮した javascript は、現在では RIA に SPA や 3D ゲームなど、あらゆるアプリケーションがブラウザ上で動きつつあります。 - * それらの素晴らしいデモに触れ、これから Web 開発に望む皆さんは、胸をときめかせていることでしょう。 - * そうです、今や Web ブラウザは、あなたの夢を何でも描くことの出来る自由なフロンティアです。 - * - * しかし、いざ Javascript を触り始め、初めての開発に着手すると、Web ブラウザというフロンティアは、少し雑草の茂るだけの荒野だと気付くでしょう。 - * ここに RIA や 3D ゲームといった素晴らしいテーマパークを築機上げるには、まずは測量に整地、地盤や土壌の改良といった膨大な作業をしなくてはいけません。 - * - * 簡素な物置小屋のための最初の柱を建てるのにも、それ以前に膨大な作業の必要なことに、あなたは唖然となるでしょう。 - * そのような基礎もそこそこに、勇んで建てた一本目の柱は傾き、または無残に朽ち果てるのを目撃し、あなたは深いため息をつくかもしれません。 - * - * Javascript は様々な問題を孕みつつも、今や最もあらゆるプラットフォームで動作する言語のひとつへと躍進しました。 - * これから、このフロンティアに如何に基礎を作り、その上にテーマパークを作るのか?一緒に考えていきましょう。 - * ようこそ、Web 開発の世界へ! - * - *

pettanR フレームワーク API ドキュメントについて

- * このAPIドキュメントには、折に触れこのような長文が登場します。 - * Web 開発は今では、そのカジュアルなイメージとは裏腹に、膨大な知識と経験が必要なものになってしまっています。 - * どのようにして、それらの情報を、妥当な業務時間の間に継承していけばよいか? - * - * この意識は常にありましたが、このたび pettanR フレームワークの API ドキュメントを作成するにあたり、それに付記していく形で取り組んでみようと思います。 + *

API ドキュメントと併せて、その意図や背景を綴っていく副読本もご覧ください。 + * クラウド番外地 > ぺったんR API文書の副読本 * - *

フレームワークのレイヤー構造について

- * - * - * ライブラリは X という名前空間を使用します。 - * @example //ショートハンド - * X( func ) == X.ViewPort.listenOnce(X.Event.XDOM_READY, func); + * @example // ライブラリは X という名前空間を使用します。 + * //ショートハンド + * X( func ) == X.ViewPort[ 'listenOnce' ](X.Event.XDOM_READY, func); * X('#mydiv') == X.Doc.find('#mydiv'); * @namespace X - */ + */ function X( v ){ - if( X.Type.isFunction( v ) ){ - X.ViewPort.listenOnce( X.Event.XDOM_READY, v ); + if( X_Type_isFunction( v ) ){ + X[ 'ViewPort' ][ 'listenOnce' ]( X_EVENT_XDOM_READY, v ); } else if( X_shortcutFunction ){ return X_shortcutFunction.apply( X_shortcutContext || X, arguments ); @@ -40,44 +19,54 @@ function X( v ){ }; //{+DEV -if( !window['console'] || ( window.parent && window.parent.log ) ) - console = { log : function(a){ - var win, elm; - //alert(a); - if( window.parent ){ - elm = parent.document.all ? parent.document.all.log : parent.log || parent.document.getElementById( 'log' ); - elm && ( elm.innerHTML = a + '
' + elm.innerHTML ); - }; - } }; +if( !window['console'] || ( window.parent && window.parent.log ) ){ + console = { + log : function(a){ + var elm; + //alert(a); + if( window.parent ){ + elm = parent.document.all ? parent.document.all.log : parent.log || parent.document.getElementById( 'log' ); + elm && ( elm.innerHTML = a + '
' + elm.innerHTML ); + }; + } + }; +}; + +if( !console.dir ) console.dir = function(){}; //+DEV} +//{-AUDIO +//-AUDIO} + var undefined, X_EMPTY_OBJECT = {}, X_TEMP = { onSystemReady : [] }, + X_emptyFunction = new Function, X_shortcutFunction, X_shortcutContext; /** - * バージョン文字列:"0.6.123" + * バージョン文字列:"0.6.xxx" * @type {string} */ -X.VERSION = '0.6.127'; +X[ 'VERSION' ] = '0.6.181'; /** * ブートタイム ms * @type {number} */ -X.bootTime = + new Date; +X[ 'bootTime' ] = + new Date; /** * 空の関数 * @type {Function} */ -X.emptyFunction = new Function; +X[ 'emptyFunction' ] = X_emptyFunction; /** * このscriptはheadタグの中にあるか? * @type {boolean} */ // TODO defer の場合もあるので、document.readyState を見る +// TODO body の有無を見ればOKではないか? // MacIE で false -X.inHead = (function( s ){ +X[ 'inHead' ] = (function( s ){ if( !s ) return false; if( !s.length ) return false; // Safari1.3 312.8 でerror s = s[ s.length - 1 ];