06 | 2007/07 |  08

  1. 無料サーバー

search phpbb-phpbb-FC2BLOG-Info-Edit Template-Post-Edit-Upload-LogOut

CSSやJavascript自習の苦闘史を綴っていきたい。恐縮ですがJavascriptを有効にしてご覧ください。
2005年12月から社会問題も掲載!


prototype.jsの最初の関門はClass定義にある

prototype.jsでClass.create()はどう使われているか?

3277行に及ぶprototype.js(ver1.5.1.1)の中でClass.create()は16回使われています。次の16個のClassオブジェクトが定義されています。

  • PeriodicalExecuter、
  •  
  • var Template、
  •  
  • ObjectRange、
  •  
  • Ajax.Request、

  • Ajax.Updater、
  •  
  • Ajax.PeriodicalUpdater、
  •  
  • Insertion.Before、

  • Insertion.Top、
  •  
  • Insertion.Bottom、
  •  
  • Insertion.After、

  • Element.ClassNames、
  • var Selector、
  •  
  • Form.Element.Observer、

  • Form.Observer、
  •  
  • Form.Element.EventObserver、
  •  
  • Form.EventObserver

これらの16個のオブジェクトが何故Classとして定義されなければならないのか、他のオブジェクトとどのような差異をもたせたいためにClassとして定義されたのか、それが分からないのです。

オブジェクト指向で、敢えて問題を複雑にするメリットは何?

var myObj = {};

たったこれだけでObjectは生成出来てしまうのに、どうしてClass定義が必要なのでしょうか?

あるいはコンストラクタ関数を

var myObj = function (a, b){this.a=a; this.b=b;}

または、

function myObj(a,b){this.a=a; this.b=b;}

のように定義すれば、これでObjectの初期化が可能なのに、どうしてClassを定義する必要があるのでしょう?

以上の極めて初期的な疑問をまず解決したいと考えています。

最初のボタンを掛け違えてしまうと、prototype.js の理解は決して深まらないでしょうし、今までのJavascriptコード利用がそうであったように、取りあえず動けばよい、とばかりに半可通のままでそれを使いたくないからです。

Javascript2 ではClassが導入されるらしい

待望されているJavascript2がいつ登場し、例えばFireFoxに搭載されるのか知らないのですが、近々登場するであろうJavascript2ではClass概念が導入されるようです。そうだとするとClassを使いこなせるようになっておいた方が、後々Javascript利用上の応用度、自由度は間違いなく高まると思われます。

そこでまず、オブジェクト指向なJavascriptについて記述されているWebサイトを探してみました。

上記のサイトを概観しても、Class定義を敢えて行う必要性についてはピンと来ません。Class 定義の必要性が十分理解できないのです。

上記Webサイトの2番において、Class定義のメリットについてさらっと触れられていますが、あっさり過ぎて、敢えてClass定義を利用する意義や重要性の認識は深まりません。

まだまだ道は遠い!

▲ToTop

何と16日のユニーク閲覧者は555!

関連エントリイリスト in this Blog

7月16日のユニーク閲覧者数が何と555!

数日前から閲覧者数が増加していることは把握していました。しかしこれまでの数ヶ月間ずっと200台だったユニーク閲覧者数が突然一昨日あたりから急増し始め、ついに昨日7/16には555人となったのです。

トータルアクセス数では914回と一千の大台に近づいてしまいました。

こんな拙ブログの何がそれ程の閲覧者を獲得しているのか? アクセス解析を見ても決して特定のエントリイに集中してアクセスされている訳ではないのです。

7月の約2週間の検索ワードを調べてみると、相変わらず「Yahoo解約」関連検索結果としての閲覧がダントツで多く、これにDRM解除が続いています。今盛んにエントリイしているJavascript関連の検索語による訪問は決して多くはありません。最も多いoffsetParentで検索して閲覧してくれた方でも、7月中のユニーク訪問者数累計=4,164人(参考:6月-6015人、5月-5199人、4/22〜30で1147人)の内、わずか26人に過ぎません。

つまり今集中して書いているJavascript関連のエントリイが注目を浴びている訳ではなく、以前に書いたいくつかの話題が関心を集めているようです。

ちょっと残念ですが,それでも沢山の方々に閲覧されていると言う事実は、大変嬉しいことです。

そして大いに励みになることでもあります。引き続き頑張りたい、との決意を新たにしている今日この頃です。

閲覧者の皆さん、ありがとうございます。

prototype 学習、否オブジェクト指向Javascriptコードの学習を何から始めるか?

Ajax Libraryを概観し、いくつかの書籍を読みました

そこで思い付き、到達した学習方法をまとめておきたいと思います。

何度も書いているとおり、Libraryをそのままincludeして利活用する方法はとりたくないのです。そうすれば少なくとも Libraryの利用方法は分かるでしょうし、それだけでも一定の価値と意味はあります。しかし、それではJavascript本体のObject指向的なコード記述方法、つまりJavascriptそのものを十分には理解し得ないと思うのです。

愚劣ではあっても、丁度鉛筆でなぞる奥の細道のように、たとえ一字一句転写することになったとしても、オブジェクト指向的なJavascriptコードを自分で納得して書いてみるべきだと考えるのです。

まず Event Object の拡張を行ってみたい

イベントObjectは、Javascript本体に装備されているObjectの中でも大変分かりにくいものです。おそらく、今でも私は十分にそれを理解仕切れてはいません。

だからこそ、Event Object(以下EO)への理解をきちんとしたものにするためにも、EOの拡張にチャレンジしてみる必要があるし、もしかしたらprototype.jsで実装されているEOを更に拡張することが出来るかもしれません。

prototype.jsにおけるEvent Objectの更なる拡張について
例えば、prototype.jsにおけるEOの拡張は、まだ勧告に至っていないW3CのDOM Level 3で規定されるはずのキーボードイベント監視や、イベント発生元要素の取得、左クリックされたか否か、マウス位置取得、デフォルトアクションの停止、リスナーの停止、Listenされているかいないか、リスナー履歴(Cache)取得などです。

ここで欠落しているのはイベント発生先要素の取得、及び当該イベントのリスナーが設定されている要素の取得などです。

▲ToTop

次には訪問履歴(どのサイトから来てくれたのか)の取得です

アクセス解析を一々見なくても、document.referrerプロパティを活用して、訪問前サイトのリストを作成してみたい。単に今のこのブログに装備されていないから、オブジェクト指向Javascriptの練習台とし、取り組んでみたいというのが動機ですが、リファラー履歴をエントリイに取り込むということは、当該エントリイが表示される際に取得できるdocument.referrerの値を累積していくことであり、同じサイトから来てくれた場合のリストアップをどうするか、自サイト内のindex頁からの訪問も取得するのか、不定期に閲覧されるその都度、取得されるreferrer値をどのようにして累積するか、等の問題があり、結構挑戦し甲斐のある課題なのではないか、と考えています。まだ分からないこともありますが、チャレンジしてみようと思います。

幸いなことに、最近はユニーク訪問者数が200カウント台から300、日によっては400オーバーに乗ることもありますが、どんなルートから訪問してくれたのか、知っておくことは意義があると思うのです。

また、その情報が訪問者にも見えることにも意義があるはずです。リファラーはある意味で重要な関連情報ですから。

このリファラー履歴を各エントリイの末尾に掲載出来たらいいな、と考えた訳です。もしかしたらFC2のプラグインツールで既にあるかも知れないが、敢えて自前で作ってみようと思います。

 90%近いシェアを握っているインターネットエクスプローラの描画エンジンを利用したタブbrowser。沢山のタブbrowserがあるが、多機能、カスタマイズフリー、スクリプト利用等で一日の長がある。Gekkoエンジンへの対応も行われ、IEからの自立独立の方向に向かっている。2005年7月にはIE7が登場する見通しの中で、今後の発展が望まれる。

 多様なCSS作成支援機能を備えた、タグ入力式 HTML&CSS作成支援エディタ。スキンデザインもすっきりしている。テキストエディター上で作成するよりも確実で安全にタグ打ちが出来る。
文字コードを選べないのが欠点。

 StyleNote同様のタグ入力式 HTML&CSS 作成支援エディタ。長年使用してきたが現在StyleNoteに乗り換えつつある。

 クリップボード履歴情報を活用する為のソフト。画像まで履歴を取ってくれるのが嬉しい。このソフトを使わない日は絶対ない程に重宝し、愛用している。

 起動中のウィンドウの「コピーできない」説明文などの文字列を取得し、コピー可能な文字データにするツール。何かと便利。

 ストリーミングデータを保存することが出来るソフト。動画利用には不可欠なソフトだ。

 無料ながらレイヤー機能を有し、スクリプトによる拡張も可能な、sleipnir作者が提供している優れもの画像編集ソフト。

 画面キャプチャソフトと言えばこれに勝るものなし、ではないだろうか? 様々な取得方法を有しており、ブログ作成にもHomepage作成に不可欠だ。Jtrimと並んでWoodyBellsの作品。

 複数ファイルの同時編集は出来ないが、透過pngも作れる画像編集ソフト。
(以下当該サイトから抜粋)初心者にも簡単に操作が出来るフォトレタッチソフトです。多くの加工機能で画像に様々な効果を与えることができます。非常に軽快に動作するため、ストレスなく操作できます。

 Animation Gifファイルを作れる無料ソフト。

 キャプチャソフト。画面内にサイト全体が表示しきれない場合でも、これを使えば全体をキャプチャすることが出来る。

 画像処理。画像のフォーマット変換のみならず、色数やサイズ、圧縮率の変更まで一括処理できてしまう『BatchGOO!』は、大量の画像をまとめて処理したいときに大変便利なソフト。BMP, TIFF, JPEG, PCX, PNG の相互変換をはじめ、色数・サイズ・解像度の統一、JPEG圧縮率の調節など、ホームページ用の画像や携帯電話用の壁紙を揃えるのに抜群の相性を見せる。(Vectorの当該ソフト紹介頁より抜粋引用)

 名前から直ぐに想像が付くように画像のサイズを測るためのソフトだ。Homepage作成には欠かせない。2カラム、3カラムのレイアウトを行う場合に大変重宝する。

 ランチャーソフトは沢山あるが、中でもこれが一押しだ。2年以上使ってきたがその操作性には毎日満足している。これを使い始めてからデスクトップには一切のアイコンを表示することをやめてしまった。

 AdobeReader7によって、起動時間が長すぎるという長年のユーザーの不満はある程度解消した。そのためこの高速化ソフトは存在価値が低下してしまったかもしれない。AdobeReader6迄はこのソフトによる起動高速化で恩恵を受けてきた。

 IE専用が難点だが、様々なサイト内でIDやパスワードを入力するのに重宝するソフト。コンテキストメニューから簡単に起動できるのがGood! sleipnir等のIEの描画エンジンを利用しているブラウザでも使える。

 利用しているパソコンの諸元値を取得するには、このソフトがベストだ。インストール済みソフトの一覧が取得できるのも嬉しい。

 WMPは機能が豊富なだけ重い。RealPlayerも同様だ。そこでMedia Player Classicを使いたい。動作が軽快なだけではなく、対応しているファイル形式もすこぶる多く、これひとつで、wmvもrmも表示できてしまうのだから凄い! 数多あるMedia Playerの王様と言えるだろう。

 自宅でPCを起動しているときには必ず起動しているメディアプレーヤー。何かと過剰なWinampよりも、起動も速くスキンはシンプルだ。

 DivX, Xvid, Mov, Vob, Mpeg, Mpeg4, avi, wmv, dv, などの動画をDVD-Video形式に変換できるフリーソフト。クリックするとDVD関連ソフト紹介サイト=「DVDなToolたち」なるHomepageが開きます。