こんなことをしていては、また嫁に怒られる…
いろいろ不具合があるかもしれませんが、ご容赦ください。
変更点は以下。
- prototype.jsベースをjqueryベースに変更
- 関係するprototype,lightbox,scriptaculous等を削除
- jqueryのlightbox pluginを導入、scriptaculousはjqueryで代用 *0
- 変えた理由はjsのコード量削減と、単に試してみたかったから
- logページの導入
- 右上のlogを押すと各月やタグを利用した過去ログのインデックスが出る
- 今までへぼいsearchでしか過去ログを探せなかったのが、まともになった
- レイアウトの最適化
- ヘッダやフッタに特殊効果や文字を加えて分割した画像を使っていたが、mouseoverなどのためにわざわざ画像を加工するのもアホらしいし、画像の数が増えるとリクエスト数が増えてロードが嫌なことになる。なので、今回は1枚絵をoverflow:hiddenを使って切り分け、さらにopadcityやgradientを使って以前と同じような画面に仕立て上げた。ただ、このあたりは激しくブラウザ依存があるのでまだおかしい部分もある。特にIE…切り捨てたいけど、やっぱりシェアがまだ高いから対応せざるを得ない。
- 他にもjsの評価する順序を後回しにする等姑息なロードの最適化はしてるけど、目に見えた効果はなし
- ツイートするボタンを付けた
- @__mtm goo.gl な雛形生成されてポップアップが開く。が、window.openなのでブロックされる可能性大ですが…anchorでtarget=_blankでやるべきですかねえ。
- memcacheの導入
- 今まで一切キャッシュしてこなかったのですが、logページがmysqlを叩きまくるのでかなり重く、流石にないとまずいと思い導入
- トップページで一発目のリクエストの返事が来るまで300ms以上掛かっていたのが、200ms弱まで減ったぽい
- html5 drag and dropの導入
- それに伴いswfuploadの削除
- これは僕がファイルのアップロードするときの問題なので、どうでもいいですな。flashに頼らずともjsだけで複数ファイルのアップロードができるようになるとは、いい時代です。けどFx3.6以上専用。chromeはgetAsBinary()が使えないんだな。gearsでは同じようなことできたのに何故。
あとやりたいのはapache側の最適化かな。
fastcgi使うとか、そもそもキャッシュを返すだけならrubyじゃなくていいしもっと軽い機構を使おうとか、いろいろ手は打てそう。
他には、自鯖でやるのをやめてEC2を試してみるとか少し考えてる。夏場暑いの嫌だし、ディスク飛びそうだし。ああ、いっそのことappengineはどうだろう。いやrubyからpythonの書き直しは不毛だからやりたくないな。どうせ書き直すならscalaとかがいい。
って妄想は拡がるけど、多分このシステム、また1年半くらいは放置されるのでしょう。
てか、なんでブログ書くのにシステムから作らにゃならんのだ。なんかがおかしい。
*0 : 大して使っていなかった