URLDispatcher
WEB+DBPressの第60回にJQueryの特集をしていた。
JQuery好きとしては是非見たいところ。
- 作者: まつもとゆきひろ,西尾泰和,山田憲晋,城戸忠之,増井俊之,羽生章洋,uupaa,ミック,塙与志夫,原悠,奥一穂,はまちや2,大沢和宏,吾郷協,浜本階生,中島拓,中島聡,矢野りん,角田直行,能登信晴,田村哲也,吉村譲,結城亜砂子,角谷信太郎,石橋秀仁,WEB+DB PRESS編集部
- 出版社/メーカー: 技術評論社
- 発売日: 2010/12/22
- メディア: 大型本
- 購入: 12人 クリック: 185回
- この商品を含むブログ (24件) を見る
その中に、URLDispatcherというものが紹介されていたので、自分なりに作り変えてみた。
どういうものかと言うと、URLごとに実行するJavascriptのコードを変更するという物。
結構Javascriptって、コードが散らばってたりするので、このJavascriptを1行読み込んで、URLごとに処理を切り出すようにする。
変更を加えた物は以下。
url.dispatcher.js
// 実行するものの定義 dispatcher([ { // 全体の処理。 path: '.', func: function() { // 全体に関わる処理を記述する。 } }, { // 「/hoge」で始まるURLでの処理。 path: '^/hoge', func: function() { // 「/hoge」配下での処理を記述する。 } } ]); /** * パスによって指定の関数を実行する。 * @param mappings * path:現在のパスにマッチする正規表現 * func:実行させたい関数 */ function dispatcher(mappings) { var pathname = location.pathname; for(var i = 0, len = mappings.length; i < len; i++) { var path = mappings[i]['path'], func = mappings[i]['func']; if(path && func) { if (pathname.match(new RegExp(path))) { func.apply(this); } } } };