実行モジュール(ロードモジュール)バージョン確認
Google Maps APIは特定のバージョンを指定してロードすることもできますが、
日々バージョンがアップされて自動的に最新のモジュールが利用されます。
ここは特定のバージョンを指定して読み込んだ場合、
実際にどのようなバージョンがロードされているかを確認するための環境です。
概要
各確認環境
【注意】
本検証で表示しているバージョンはGoogleが公にライブラリバージョンを確認する方法として、
ヘルプ等で周知となっていないメソッドを利用して確認しています。
その為、表示のバージョンが実際の内部ライブラリバージョンとは異なっている可能性もあります。
あくまでも参考としてお考えください。
2015/09/01現在で確認ができたバージョン値。
- 3.22.2 (Experimental)
- 3.21.9b (Beta)
- 3.20.15 (Release)
各動作環境でそれぞれロードされたモジュールバージョン(2015/09/01現在)は以下の通りでした。
現行の開発中のベータバージョンは「3.21.9b」であり、
表示された「3.22.2」というバージョンは(experimental:実験的)と呼ばれるバージョンと思われます。
現行バージョンが3.20.15になりますので「v=3.21、v=3.22、v=3.23」は、
どれも未来のバージョン(存在すらしないかもしれない)を指定していることになります。
「v=3.19、v=3.18、v=3.00」は過去のバージョンの読み込みを試みています。
| version | 実行バージョン | |||
|---|---|---|---|---|
| ドットなし | ドット有 | ドットなしKEY付 | ドット有KEY付 | |
| 指定なし | 3.22.2 | - | - | - |
| v=3 | 3.21.9b | 3.21.9b | 3.21.9b | 3.21.9b |
| v=3.exp | 3.22.2 | 3.22.2 | 3.22.2 | 3.22.2 |
| v=3.23 | 3.22.2 | 3.22.2 | 3.22.2 | 3.22.2 |
| v=3.22 | 3.22.2 | 3.22.2 | 3.22.2 | 3.22.2 |
| v=3.21 | 3.21.9b | 3.22.2 | 3.21.9b | 3.22.2 |
| v=3.20 | 3.20.15 | 3.22.2 | 3.20.15 | 3.22.2 |
| v=3.19 | 3.20.15 | 3.22.2 | 3.20.15 | 3.22.2 |
| v=3.18 | 3.20.15 | 3.22.2 | 3.20.15 | 3.22.2 |
| v=3.00 | 3.20.15 | 3.22.2 | 3.20.15 | 3.22.2 |
| v=2 | - | - | 3.22.2 | 3.22.2 |
上記を見てもわかるように、最も多くの人が設定しているであろう「v=3」指定では、
設定に「v=3」となっていればそれだけで、Betaバージョン が読み込まれています。
要はもっともユーザー数の多いところで、ベータテストに参加させられている感じになるかなと思います^^;
また、ちょっと設定を誤ると「実験版」が読み込まれてきます。
下位互換性(v2)の提供などが行われている実験版ですが、
こちらもテスターを兼ねているようなニュアンスかと^^;
厳密に現在のバージョンでテストを行ってリリースを行うような場合、
現行のバージョンで明記すれば、正しく「安定版」が読み込めます。
ただ、APIのバージョンが上がっていくと、過去のバージョンがフリーズされ、
自動的に「その時点の安定版」が利用されるようになっていきます。
APIのバージョンアップに開発ペースがついていけない場合には、
結果的に「自社として未テストバージョン」の組み合わせがWeb公開される可能性があります。
ドットの有無ってなに?なんでこんな検証をしてるの?
上記のドット有、なしの区分が何のことなのだろうと思われると思います。
実際、やった後に気づいたのですが、ヘルプでは以下のように書かれています。
Types of Versions
You can indicate which version of the API to load within your application by specifying it using the
vparameter of the Maps Javascript API bootstrap request. Three options are supported:
- The experimental version, specified with
v=3.exp.- The release version, specified with
v=3orv=3.20.- A numbered version, specified with
v=3.19.(引用)Concepts | Google Maps JavaScript API#VersionTypes | Google Developers
これ・・・
「v=3.exp.」や「v=3.20.」「v=3.19.」の部分の<code>表記の後ろに対して「.」がついているように見えます。
ですが単に日本語でいうところの「。」句読点でした。
てっきり「指定する際に「.」が末尾に必要なのかと勘違いした」ことから始まった検証だったのでした。
その為、以下のような「.」有無によって、読み込まれるモジュールのバージョンに変化があるのか。
もっと言えば無用な文字が入っている場合に、想定しない挙動をするのか?という検証になりました。
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?v=3.20"></script>
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?v=3.20."></script>
しかし、やってみた結果として(誤った指定を行った場合という意味で)違いはあったわけです。
以下のような結果が得られました。
総括
どんな適当な指定を行っても「モジュールが読み込まれないことはない」ということが言えます。
まず、動く。
但し、多くの場合は「experimental(実験版)」が読み込まれ、
運用環境で利用するにはふさわしいとは言い難い状態にはなります。
それぞれのパターンで実際に読み込みを行ってみた挙動は、以下のようになりました。
バージョン指定を省略
バージョンの指定を省略して、ライブラリの読み込みを行った場合、
無条件でexperimental(実験版)による読み込みが行われました。
- 無条件・・・Experimental
v3バージョン表記
一般的によく見る「v=3」というバージョン指定の挙動は、
どのような指定を行ったとしても、最新版のベータモジュールが読み込まれていました。
- 無条件・・・Beta
v2バージョン表記(既存過去ソースを想定)
Google Maps API v3が公開される以前から利用している場合で、
v3へのバージョンアップの対応ができていないような場合には、
こちらも無条件でexperimental(実験版)による読み込みが行われました。
- 無条件・・・Experimental
過去バージョンを指定
現在の安定版以前の既に凍結されたと公言されている
バージョン(現時点では3.19(Frozen)以前)は指定した場合であっても利用することができませんでした。
- 正しく指定(ドットなし)・・・Release
- 誤った指定(ドット有)・・・Experimental
現行バージョンを指定
指定したバージョン名が現行バージョンの範囲内の場合、
正しく指定している場合には、安定版が読み込まれますが、
指定を誤った場合には、experimental(実験版)による読み込みが行われました。
- 正しく指定(ドットなし)・・・Release
- 誤った指定(ドット有)・・・Experimental
ベータ版を指定
指定したバージョンが未来のバージョンで、
開発中のベータリリースが存在した場合には、そのベータ版が採用されました。
指定を誤った場合には、experimental(実験版)による読み込みが行われました。
- 正しく指定(ドットなし)・・・Beta
- 誤った指定(ドット有)・・・Experimental
ベータ版さえ存在しない未来バージョンを誤って指定
通常はこうした指定を行うことはないと思いますが、
誤ってベータ版さえ存在しないバージョンを指定していた場合には、
設定が正しいか否かに関わらず無条件でexperimental(実験版)による読み込みが行われました。
- 無条件・・・Experimental
検証環境
こうした検証は、今後の日々のバージョンアップによって陳腐化していきます。
その為、実際に検証を行った環境を以下で残し、バージョン表示を行っています。
バージョンがまた新しくなった際には再検証を行って更新してまいります。
公開日:
最終更新日:2015/09/02