Ajax非対応ブラウザへの善処

Opera7.60とかさ

javascriptそのものにも言えることだけど、非対応ブラウザへの対処は重要な問題。代替手段を提供する必要があるのだけど、とにかく対応しているのかしていないのか判定する必要がある。HTTPリクエストヘッダをサーバ側のスクリプトで見て、対応するコードを出力する、という解決策も可能だけど、すべてもブラウザを網羅する必要がある。mendoxaiことはなはだしい。そこで、それをズバっと解決できるのではないかな、というメモ。

そっちで書き換えてくれよ

正式になんと呼ぶ仕組みなのか知らないけれど*1、とにかくjavascriptでコンテンツの内容を書き換えることができる。これで書き換えられるのはなにも文書の内容だけではなくて、例えばaタグのhref要素でも可能だ*2。これを利用して、

  • まず、サーバ側からは代替手段のほうを出力する
  • クライアント側でjavascriptを利用し、Ajaxを利用する*3予定のリンクを非同期に書き換える
  • それがうまくいけばAjax利用可能。書き換えたリンクでばんばん非同期通信しちゃってかまわない
  • うまくいかないなら書き換え失敗。代替手段のほうが利用される

という流れ。
同様に、javascript対応の有無も確認できる。なかなかに便利、だと思う。

*1:DHTMLとかかな

*2:というか、まぁ要素をピンポイントにやらなくたってタグごと書き換えてしまえばいいのだけど

*3:表現が微妙