Tim Bray: 「URLに#!入れるな」

Tim Bray(GoogleAndroid応援団長)が「#!」の入ったajax用URLを使用を批判している。

http://www.tbray.org/ongoing/When/201x/2011/02/09/Hash-Blecch

new: さらならる「#!」URL批判

例にtwittertwitter.com/#!/timbrayを挙げている。

#!の働き

  • サーバ側は#!の前までしか見えない。上の例だとサーバはtwitter.com/のリクエストを受ける
  • #!以降はブラウザの中のジャバスクリプトが解釈する

何故#!を使うのか

  • ajaxのアプリは古いブラウザでは基本的にURLを変更することができない…
  • ただし#(フラグメント)以降はブラウザ内のJavaScriptからでも変更可能
  • なので、ajaxアプリケーションが自分の状態をURLバーに表示するために使われるようになった。
  • つまりajaxアプリケーション内でのページと考えればいいだろう

#!に対するtbrayの批判

  • サーバが認識するURL(#!以前の部分)が一つのドキュメントと対応するというウェブの大原則に背くルール違反
  • この単純なURLとドキュメントの対応がなかったらサーチエンジンは生れなかっただろう
  • googleは#! URLをクロールする決まり事を提案しているが、これは酷いハック
  • このようなバリアによって次のグーグルのような発明が困難になることが最大の問題

ウェブのURLドキュメント対応の原則を無くなると、Googleが生れた土壌が損なわれるというのがtbrayの論点だ。
コメントにはウェブは進化すべきて、このような古臭い決まり事は犠牲になっても仕方ないという意見もある。

WordPressの開発者Mark Jaquithのコメントが面白い。

  • AJAXアプリがURLを変えられないという事態は2ー3年後には無くなるので、#!も必要なくなる
  • WordPressの次にリリースではHTML5をサポートしないものはAJAXを使わないで、HTTPリクエストで更新する…
  • …何故なら「WordPressに#!を掃き出させるようなことすぐらいなら死んだ方がましだ」から
  • "No way in hell am I going to see WordPress spitting out hashbang URLs"

#!によるAJAXもいいがHTML5の動向を見ながら判断して使った方がよさそうだ。