自動で最新バージョンにするのはアリなのか?っつーお話

この記事はだいぶ前に書かれたものなので情報が古いかもしれません
例えば、自分のサイトでjqueryを読み込む際、その方法は大別すると二つあるわけですよ。

自分のサーバーにjqueryのファイルを持って来て読み込むか。

配信されているサイトから直接読み込むようにするか。

あかつきのお宿を例に取ると、こんな感じですかね。

//自分のサーバーで読み込む場合
<script type="text/javascript" src="http://norm-nois.com/js/jquery.js"></script>

//どっかのサイトから直接読み込む場合
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>

自分のサーバーにファイルを置いて読み込んでいる場合、最新のバージョンがどれだけ上がっても、自分で最新のファイルを落として来てアップロードし直さない限り、いつまでもそのバージョンのまま使い続けることになるわけです。

一方、どっかのサイトから、上の例でいうと「http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js」ってところから読み込むようにしている場合、最新のバージョンが上がれば、いつの間にかここから読み込まれるバージョンも上がっていたりするわけですね。

具体的にいうと、つい先日jqueryのバージョン1.9がリリースされたらしくて「http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js」で読み込まれるjqueryも、いつの間にかバージョンが1.9になっていました。それまでは1.8だったのに。

で、Flowplayerっていう、ブラウザ上で動画を再生するためのなかなかイケてるプレイヤーがあるんですが、僕は仕事で開発しているウェブサイトでこいつを使っていまして、jqueryも自サーバーにファイルを置いて読み込むのではなく、上のURLから読み込むようにしていたんですね。何でそうしていたかっていうと、FlowplayerのDocumentationのページで、設定方法にそうやってjqueryを読み込むように書いてあったから、一応そっちを真似しとこうかなと思ってそうしただけです。そうせざるを得なかったってわけじゃない。

でもこのFlowplayer、jqueryのバージョンを1.9に上げると上手く動かなくなるみたいで(この記事を更新している時点ではね)、それでユーザーさんから「急に動画が見れなくなったぞ。ああん?」っていうクレームが来てしまいまして……最初は何で動かなくなったのか原因がよく分からなかったんですが、どうやらこれが原因らしいぞと。

まあ、Flowplayer以外にも、いくつかjqueryを使ったプラグインの部分が動かなくなっていまして……いずれもjqueryのバージョンを1.8に戻したら動くようになりました。

たぶん、jqueryはそろそろIE8以下のサポートを切ろうとしているはずですから、バージョンアップに伴い、その辺の改修がなされたおかげで、各プラグインの中でもろにその影響を受けた部分が動かなくなったのではないかと、そんな感じだと思います。エラーの内容を見てみたら、詳しくは調べてないけど「msie」って単語が見えたし。

FlowplayerのDocumentationのページも、先日までは「http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js」からjqueryを読み込むようにって書いてあったところが、いつの間にか「http://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js」ってなってた。全然気づかんかったばい。



正直、jqueryとか、あとWordpressの本体とかもそうですけど、なるべくなら常に最新にしておくに越したことはないなって思ってたんですよ。思ってたっていうか、今でも思ってはいるけど。

でも手動でバージョンアップってなると、うっかり忘れてしまうことも多いですからね。そもそも最新のバージョンが出たことすら気づかないことだってあるし。まあ何かその辺はRSSを購読するとかいろいろ対応のしようはあるのかもしれませんが、何もしなくても勝手にバージョンアップに対応している方が、開発者としては楽な面もありますよね。

ただし、そういう風にしていると、今回のような事態も引き起こしてしまうことがあるわけですな。

いや、実際PHPのバージョンを上げるとか、CakePHPのようなフレームワークのバージョンを自動で上げるってことはないと思いますけどね。ああいうのは、一度テスト環境とかでバージョンを上げても正常に動作するかを確認して、それから適用すると思うんですけど、ぶっちゃけjqueryに関しては、そこまでシビアになることはないって、ちょっと思っている自分がいました。

確かにね、以前このブログでも、jqueryのバージョンを1.7から1.8にしたらbackground-positionがanimateで動かせなくなったとか、そういう被害に遭ったって話はしたことがありましたけど、それでもそこまで重く考えてなかった。

でもやっぱりダメだね。jqueryといえども、バージョンアップの対応は手動でした方が良いんだろうね。



この世界で生きている以上、そういうところももっと気にしないといけないですよねー。

ただプログラム書いてりゃそれで良いってわけにはいかないのよね。
 もしかしたら何か関連しているかも? 
 質問や感想などお気軽にコメントしてください