JavaScript
HTML5+JavaScriptでゲーム開発するためのJavaScriptライブラリを、とりあえず羅列しておく。 enchant.js 参考サイト 9leap : トップページ - どこでも遊べる、投稿型ゲームサイト HTML5のスマホ向けゲームのJSライブラリ「enchant.js」 :: dotHTML5 UEI、HTM…
アジャイル的に趣味アプリを開発しようと考えているが、まず非Ajaxで簡単に作って、後々Ajaxにしていくのはどうだろうか。 ということで、簡単に調べてみた。 非AjaxWebアプリのAjax化をAjaxfyと呼ぶとか。 キーワードになってきそうなのは「Ajaxフレームワ…
Node.jsのexe版が出たとのことで、ダウンロードしてみた。 ダブルクリックで実行するとコマンドラインが表示され、そこにJavaScriptのコードを記述できる。 これってつまり、JavaScriptエンジンV8込みでexeに固まってるってこと?ってことで、今後はお手軽に…
インスタンスフィールドにアクセスしないスタティックメソッドは、メモリ削減のためプロトタイプ側に定義した。 okkn.js if(okkn === undefined) { var okkn = {}; } if(okkn.util === undefined) { okkn.util = {}; } (function() { //*** パッケージ間共通…
ロガーも追加して、パッケージ okkn.util としてひとまとめにしてみた。 okkn.js if(okkn !== undefined) { var _okkn = okkn; } var okkn = {}; okkn.util = (function() { /** * デフォルト出力先にメッセージを出力します。 * @param str メッセージ */ f…
動的にscript要素を作成、編集するパターンおよびブラウザ間の挙動の違いをメモしておく。 大まかには以下の認識でよいだろう。(※例外ケースは、後述の詳細で赤文字で記載している) textよりもsrcが優先される IE8以前はDOMにアペンド後のscript要素の操作…
DOMアクセスの性能計測の際に利用するために、テスト用DOM生成の jQuery プラグインを作ってみた。 jquery.appendchildren.js ;(function($) { var _ID_DLMT = '_'; var _ID_NUM_DLMT = ''; var _nodeStructureMap = { div: ['div'] , table: ['table', 'tbo…
focusoutイベントの処理でモーダルポップアップを表示する記述をしていた。 このとき、IE8では、ウィンドウの×ボタン押下によるフォーカスアウトでモーダルポップアップが表示されると、親画面が見た目上閉じられて、モーダルポップアップがフリーズ状態にな…
とりあえず箇条書きでメモしておく。 近々、昔対応した際の技術Tipsをまとめてメモしよう。 jQueryでセレクタ 'input:hidden' で取得した場合、hidden要素だけでなく、非表示状態の任意の input 要素も取得される iframe内で画面遷移した場合でも、 window.h…
JavaScriptにおけるコードの再利用方法には下記などがある。 単なる呼び出し メソッドの拝借 コンポジション ミックスイン プロトタイプ継承 (擬似)クラス継承 メソッドの拝借 全ての関数オブジェクトがもつメソッドである call あるいは apply を用いる。…
JavaScriptのチューニングの実践を通して学んだことを整理しておく。 クライアントJavaScriptの高速化の肝はDOMアクセスと変数アクセスにある。 特にDOMアクセスのコストは格段に高いため、一番のチューニングポイントになる。 DOMアクセス DOMアクセスの削…
JavaScriptフレームワークというキャッチーな用語について調べてみた。 ちなみに、調査前に私が知っていたものはマスカットだけである。本当に(※)フレームワークと呼べそうものでは、下記が見つかった。(※補足を参照) Ample SDK レイアウトを、XMLベース…
以前作った 性能計測機能を、jquery-aop で織り込んでみた。 <HTML> <HEAD> <TITLE>タイトル</TITLE> <SCRIPT src="http://jqueryjs.googlecode.com/files/jquery-1.3.2.js"></SCRIPT> <SCRIPT src="./aop.js"></SCRIPT> </head></html>
Joinpoint Joinpoint は、下記の組み合わせで指定できるメソッドの内部となる。 正規表現可能)> 上記で指定したメソッド内での位置のバリエーションは下記の通り。 before a method after a method after a method throws an exception(afterThrow) after a…
JavaScriptのように関数をオブジェクトとして扱える言語であれば、AOP は比較的簡単に実現できそうだと常々思っていた。 とはいえ、思いつく方法は、単純に対象の関数をその関数を内部で呼び出すような関数で上書きする方法だ。 そこで、Java における AOP …
前回作成したコンストラクタ版を、クロージャを利用したモジュール版に変更した。 背景 JavaScriptでは、コンストラクタと一般の関数との区別がない。 そのため、コンストラクタとして使用されることを想定して実装した関数でも、もちろん new 演算子なしに…
前回作ったものを、コンストラクタ形式に書き換えた。 これにより、内部で使用する変数を隠蔽することができる。 var st = new SpeedTester(); st.setStart('処理1'); // 処理1のコード st.setEnd('処理1'); st.setStart('処理2'); // 処理2のコード st.setE…
JavaScriptにおける例外処理の特徴に着目して整理する。 例外オブジェクト 下記に引用する[1]「6.16 throw 文」の記述から、JavaScriptにおける例外は任意のデータ型であることがわかる。 throw 文の書式は次の通りです。 throw expression; expression に指…
jQueryを用いたコードを簡単に動かしたい場合のテンプレをメモしておく。 テンプレ1(Google Librariesから読み込み) <HTML> <HEAD> <TITLE>タイトル</TITLE> <SCRIPT src="http://www.google.com/jsapi"></SCRIPT> <SCRIPT type="text/javascript"> //</head></html>
性能計測目的でログを埋め込む際のメモを書くつもりであったが、気付いたらそこそこの分量のコードを書いていた。。 ※例外処理なし ※非クロージャ ※未単体テスト 使用例 speedTester.setStart('処理1'); // 処理1のコード speedTester.setEnd('処理1'); spee…
任意の対象判定関数を指定できる、前向きあるいは後ろ向きで深さ優先探索する関数を、jQueryで実装してみた。 ※例外処理なし ※未単体テスト 使用例 $('input:text').bind('click', function(e) { var isBackward = e.shiftKey; // シフトを押しながらクリッ…
node.jsについて、簡単に調べた内容をまとめておく。 概要 JavaScript処理系で動作するライブラリ。CommonJSに準拠する。 ネットワーク周りの低レベルAPIが豊富で、WebサーバやFTPサーバを容易に実装可能。 WebSocketのAPI提供も、人気の理由の一つとか。 no…