WebKitではGeolocation APIがキャッシュをブロックするらしい
IE9ではnavigator.geolocation
のチェックでメモリリークするらしいという話を書いたけれど、WebKitではページのキャッシュをブロックするらしい。なんと…
またまたModernizrから。
Accessing geolocation activates the geolocation service which currently blocks page caching. Checking for the geolocation property avoids this.
ただ回避策があって、geolocation
プロパティにアクセスしなければよいらしい。というわけで検出コードがこうなった。
tests['geolocation'] = function() { return 'geolocation' in navigator; }
紹介されてるWebKitのバグを読むと進行が止まってるようで、WebKit側での解決を待つにはちょっと長そう。
IE9のメモリリークも解消
!!navigator.geolocation
でメモリリークを起こしてたIE9は上の変更でどうなったのかというと、なおったらしい。
やったね。実際にAPI使うときにはリークするしキャッシュもブロックするんだろうからほんとは解決じゃないんだけど、検出コードでそんな無駄なことが起こらなくなったのはよろしいわけで。