29

クライアントが WWAN (従量制) 接続またはその他の方法で接続されている場合、特定の Web サイトを低帯域幅バージョンに調整したいと考えています。

接続の種類は、リッチ エクスペリエンスまたは帯域幅効率の高いエクスペリエンスを提供する必要があるかどうかをサイトが認識するために重要です。私のデスクトップは従量制接続で実行されます。将来的には、より多くのデスクトップが従量制のセルラー ネットワーク (Windows 8 タブレット PC を含む) 経由で接続されるようになるでしょう。バイト接続。

クライアントが HTML5/JavaScript を使用して WiFi/LAN/WWAN 経由で接続されているかどうかを確認するにはどうすればよいですか?

注 : ブラウザー ヘッダーを明示的にチェックしたくありません (これは、複数の方法でインターネットに接続できるデスクトップ ブラウザーのソリューションではありません)。

4

4 に答える 4

24

navigator.connection(接頭辞)を参照してください。この API は、クライアントの帯域幅に関する情報を公開します。

于 2012-07-28T13:43:59.363 に答える
7

できません。クライアントがどのようにサーバーに接続されているか (つまり、ペイ パー バイトまたはフラットレートの場合、どのテクノロジを使用しているか) に関する情報は公開されていません。それが役立つ場合は、(トレースに関連するすべての問題を含む) トレース ルートを取得できる可能性がありますが、その情報にアクセスできる JavaScript はありません。

JS でできることは、単純な帯域幅テストです。XHR 経由で既知のサイズのファイルをダウンロードし、必要な時間を測定します。

接続の有料モデルは完全なプライベート データです。インターネット上のサーバーに送信されることも、ロードされた Web サイトで使用することもできません。クライアントにカスタム アプリを提供するためにこの情報が必要な場合は、ユーザーに直接尋ねてください。彼が望むなら、彼はあなたに言うでしょう。


それでも、待ってください。最新の Chrome および Firefox を設定して (ユーザー設定)、実験navigator.connectionオブジェクトに関するデータを提供できます。

また、Metro アプリを開発するために、Windows はWindows.Networking.ConnectivityAPIに関する情報を提供しています。このチュートリアルを参照してください。

于 2012-07-28T13:20:37.570 に答える
4

たぶんあなたは間違った方法でそれに近づいています。Gmailモデルをご覧ください。ページの読み込みに時間がかかる場合にユーザーがオプトアウトできるリッチクライアントがあります。標準のクライアントははるかに軽量で、より「従来の」Webデザインを使用しています。
意図されていないものを自動的に検出しようとすると、非常に深いウサギの穴に落ちる可能性があります。

于 2012-07-28T13:30:50.733 に答える
1

古い質問ですが、自分の目的を探しているときにこれを見つけました-まだ試していないので、YMMV: https://github.com/ashanbh/detectClientSpeed

帯域幅情報を得るためにアセットをダウンロードする時間を測定するという基本的な概念は主観的であり、必ずしも一貫しているわけではありませんが、iOS/Android 用のネイティブ プラットフォーム API が不足しているため、これは悪いオプションではありません。軽い代替手段は、google.com などへの ping 時間を測定することです。

于 2015-07-09T19:57:21.453 に答える