Fetch as Google の Chrome が 41 になってた……けど
- カテゴリ:
- Webサービス
- JavaScript
- コメント数:
- Comments: 0
◆ Fetch as Google で見たユーザエージェントが Chrome 41 に上がってた
◆ だけど機能には変化なし
◆ 41 で使えるらしい機能は使えず試した限り 27 のときと同じ結果
◆ だけど機能には変化なし
◆ 41 で使えるらしい機能は使えず試した限り 27 のときと同じ結果
Polymer のページを見てると 「Chrome 41 (Google web crawler)」 というのがありました
去年の春頃に見た時は 27 でした
アップデートがあったみたいですね
下の方 userAgent のところです
41 というと 2015 年の春にでたバージョンです
去年の記事を書いたときには Chrome 56 だったので 新しくするタイミングで最新のものが使われるということではないようです
クローラ用の最適化とかがあって 時間がかかるのでしょう
更新があったのが 2017 年春~2018 年春の間で 使われたのが 2015 年春のモデルです
2 ~ 3 年程度はかかるみたいですね
今後も同じだとすると今のバージョン 67 の機能が Google の bot で使えるようになるのは 2020 年頃でしょう
調べてみると 41 ではアロー関数などは使えないものの Array.from やメソッド記法は使えるようになってるそうです
これも実際に試して見ます
試すのに使ったのは前回と同じものです
add 関数は画面表示するものです
ユーザエージェントでのバージョンは 41 になってるものの Array.from は存在しません
その他も前回と一緒でした
MDN によると Array.from は 32 で メソッド定義記法は 39 でサポートされたようです
セキュリティ的なものでもなければ 50 の機能を先に入れて 30 の機能は後回しなんてことはせずそのまま特定バージョンの Chrome を使うでしょうし Google bot に Chrome 41 の機能は無いと考えたほうがよさそうです
実際の JavaScript エンジンは変えずにユーザエージェントだけ上げたのでしょうか?
一体何のために……
去年の春頃に見た時は 27 でした
アップデートがあったみたいですね
Fetch as Google
自分でも確認のために Fetch as Google でユーザエージェントを表示したところ 41 になっていました下の方 userAgent のところです
41 というと 2015 年の春にでたバージョンです
去年の記事を書いたときには Chrome 56 だったので 新しくするタイミングで最新のものが使われるということではないようです
クローラ用の最適化とかがあって 時間がかかるのでしょう
更新があったのが 2017 年春~2018 年春の間で 使われたのが 2015 年春のモデルです
2 ~ 3 年程度はかかるみたいですね
今後も同じだとすると今のバージョン 67 の機能が Google の bot で使えるようになるのは 2020 年頃でしょう
Chrome 41
前は アロー関数や ... 演算子など ES2015 の構文でも使えないものが多かったです調べてみると 41 ではアロー関数などは使えないものの Array.from やメソッド記法は使えるようになってるそうです
これも実際に試して見ます
試すのに使ったのは前回と同じものです
function tryAndPrint(title, text){
try{
add(title, eval(text))
}catch(e){
add(title, "Error\n" + e.message + "\nstack" + e.stack + "\n")
}
}
tryAndPrint("UA", "navigator.userAgent")
tryAndPrint("Map.toString", "Map.toString()")
tryAndPrint("Set.toString", "Set.toString()")
tryAndPrint("fetch.toString", "fetch.toString()")
tryAndPrint("Array.from.toString", "Array.from.toString()")
tryAndPrint("Promise.toString", "Promise.toString()")
tryAndPrint("let", "const l = 1")
tryAndPrint("const", "const c = 1")
tryAndPrint("typeof symbol", "typeof Symbol()")
tryAndPrint("arrow function", "(e => 1)")
tryAndPrint("template", "String.raw `a\nb`")
tryAndPrint("generator", "(function* gen(){})")
tryAndPrint("expo operator", "3 ** 4")
tryAndPrint("for of", "for(var i of [99]) i")
tryAndPrint("async function", "(async function f(){})")
tryAndPrint("default param", "(function(a = 1){})")
tryAndPrint("... operator", "[...[1]]")
tryAndPrint("method definition", "({method(){}})")
tryAndPrint("object initializer", "var oi = 100;({oi})")
tryAndPrint("object key expression", "({['a' + 'b']: 1})")
add 関数は画面表示するものです
使えない?!
結果は前回と一緒でしたユーザエージェントでのバージョンは 41 になってるものの Array.from は存在しません
その他も前回と一緒でした
MDN によると Array.from は 32 で メソッド定義記法は 39 でサポートされたようです
セキュリティ的なものでもなければ 50 の機能を先に入れて 30 の機能は後回しなんてことはせずそのまま特定バージョンの Chrome を使うでしょうし Google bot に Chrome 41 の機能は無いと考えたほうがよさそうです
実際の JavaScript エンジンは変えずにユーザエージェントだけ上げたのでしょうか?
一体何のために……