2012-03-06 12 views
2

クライアントが最近私のウェブサイトにスライドショーを実装するように頼んだ。私は、ホームページ上で絶えずアニメーション化された画像のトランジションが、ほとんどのモバイル機器のプロセッサを詰まらせることになることを懸念しています。そのため、バッテリの寿命を維持するために自動化を無効にします。ユーザーエージェントを検出しようとせずにこれを行う方法はありますか?バッテリー駆動のデバイスをjavascriptで検出することはできますか?

バッテリーステータスAPI hereがあることがわかりましたが、どのように完全であるか、それを実装しているブラウザはわかりません。

+0

* 11月*に公開されているように、多くのブラウザでサポートされているわけではありません。 –

+0

強烈な数学的演算を実行するとプロセッサが詰まる可能性がありますが、JavaScriptを使用していくつかの画像をアニメーション化するのは問題ありません。あなたは間違ったことを心配していると思います。 – j08691

答えて

2

実際にバッテリを判別するのは非常に難しく、おそらくさまざまなアクセス許可の問題があります。

ちょうど小さなコードを実行して、それに要した時間を確認してみてください。カットオフを選択し、コードの実行が遅すぎる場合は、トランジション/アニメーション/オートアドバンスをオフにします。これは電池装置だけでなく、遅すぎるとアニメーションのないバージョンが表示されます。優雅に悪化する。

1

もう古い話題が、まだ関連 - ので、ラップトップユーザーはもう少し電池使用と一緒に暮らすことができます - -

デバイスは、モーションセンサーではなく、多くのラップトップが行うがありますが、すべての近代的なスマートフォンやタブレットがなければ、私は今、確認してください

jQueryの:

if (window.DeviceOrientationEvent) { 
    $(window).one("devicemotion", function(event) { 
     if (event.originalEvent.acceleration 
       && event.originalEvent.acceleration.x !== null) { // Chrome fakes it on desktop 
      isMobile = true; 
     } 
    }); 
} 

平野Javascriptを:今

if (window.DeviceOrientationEvent) { 
    window.ondevicemotion = function(event) { 
     if (event.acceleration 
       && event.acceleration.x !== null) { // Chrome fakes it on desktop 
      window.ondevicemotion = null; 
      isMobile = true; 
     } 
    }; 
} 
2

することができます、このAPIを持つ:http://davidwalsh.name/javascript-battery-api

navigator.getBattery().then(function(result) {}); 
+0

これだけでは、まだバッテリーの動作を明らかにしていません。すべてのデスクトップブラウザでは、そのAPIからバッテリマネージャが返されます。あなたがする必要があるのは '!batteryManager.charging'状態を検出することです。 –

関連する問題