JavaScriptで実行時間を計測した結果、ある部分の実行に時間がかかってユーザが待たされてしまうと分かったとき、その部分をあとで実行させてしまうことがある。
var book_review = new BookReview(); //待たされる book_review.show();
showメソッドの実装がこんな感じだとして
BookReview = function() { } BookReview.prototype.show = function() { //レビューを表示したいすべての本について, Amazonとかの画像URLを作成する部分 var books_url = this.createUrl(); //大量の画像をリクエストして時間がかかる(閲覧しているユーザを待たせる)部分 this.showImages(books_url); //レビュー本文を表示する部分 this.showReviews(); }
一連の振る舞いの中で、あとに回しても構わない部分を切り出してしまう。
BookReview = function() { } BookReview.prototype.show = function() { //レビューを表示したいすべての本について, Amazonとかの画像URLを作成する部分 var books_url = this.createUrl(); this.delay(function() { //大量の画像をリクエストして時間がかかる(閲覧しているユーザを待たせる)部分 this.showImages(books_url); }); //レビュー本文を表示する部分 this.showReviews(); } BookReview.prototype.delay = function() { var args = Array.prototype.slice.call(arguments); var func = args.shift(); var time = args.shift() || 0; var self = this; var f = function() { return func.apply(self, arguments); }; setTimeout(f, time); }
重い部分は実行キューに入れておいて、showメソッドは終了させるイメージ。
これからはAjaxの時代だからJavaScriptを勉強するぜー! と触り始めた頃は、IEだけちょっと仕様が違うから、ここはラッパーで囲んでやって、他のブラウザと一緒に使えるようにして・・・みたいなことばかり調べていた。IEの実装に腹を立ててばかりで面白くなかった。
けど実はクロスブラウザを気にすることは、(業務ではもちろん大事だけど)JavaScriptの本質とは全然関係が無くて、
みたいなところが肝だと分かってから、面白くなった。
JavaScriptには有用なライブラリが幾つかあって、jQueryよりもPrototype.jsやMootoolsの方が、JavaScriptの勉強に向いているという意見がある。これは、ようやく脱初心者できた僕も、そう思う。jQuery vs MooToolsという文書を読むと頷ける箇所が多い。
jQueryというライブラリはとても気が利いていて、実現したいこともサッと短く書けちゃうんだけど、JavaScriptという土台の上に何か別の言語を作っているような印象を受ける。
同じbindメソッドでも、jQueryと他2つのライブラリとでは意味が全く異なるところが設計思想の違いというか。
という順番で触ったので、bindメソッドは、ちょっと衝撃でした。
侍魂やちゆ12歳の大ブームから、現在のテキストサイトの衰退ぶりまでを振り返る趣旨のページらしい。大変面白い。
テキストサイト大流行の時、僕の友人で、いかにも侍魂の影響を受けたようなフォントいじり全開のウェブサイトを運営していた人のウェブサイトは、いつの間にか404 Not Foundを返してきて、閲覧できなくなってしまった。あれだけ熱心にアクセス数がどうだこうだと力説していたのに。そういえばReadMe!っていうランキングもあったっけ。
他にも、僕がこのウェブサイトを始めた当時、2ちゃんねるのHR/HM板ではメロスピ・メロデスが局所的なブームで、皆がCDレビューサイトやメタルニュースサイトが続々と開設していたんだけど、結局ほとんど居なくなってしまったなぁ。寂しい限り。
冒頭に挙げたまとめページを見ても、テキストサイトの平均寿命は、それほど長くないようだ。
けどこれからは、ウェブサイトの平均寿命は、延びる傾向が出て来ると思ってる。
何故かというと、
といった理由によって、「消して非難されるくらいなら残そう」という考え方が主流になりそうだから。
懸念点は、アクセス至上主義が蔓延すること。「誰からも注目されなくて寂しい」と勝手に閉鎖してしまう人が増えそう。ここが悩ましい。そういう意味で、アメブロの自動コメントシステムは良いアイディアかもしれない。
最近のツッコミ
参号館 日記(ariyasacca)
綺麗なコードだなー
まもなくサイトを閉めようとしてる人の意見として、有料サーバを借りてるといつかどっかで終わりがあるのよね。あるいはドメイン名にしても、個人で使う限り使わなくなる可能性もあるわけで。ブログなんかの永続性にノーコストってキーワードはついてまわるだろうね。
>かわはら<br>企業が運営してユーザに提供しているブログやSNSも、個人運営よりは継続が期待できるというだけで、赤字になったらやっぱり終わりが来るわけで、なかなか難しい問題ですよね。