4

私はサイトを電話ユーザー向けにできる限りレスポンシブにしようとしています。つまり、帯域幅を大量に消費するいくつかの機能を削除することを意味します。特に、ユーザーが wifi を使用しているが 3g/4g を使用していない場合は、外部フォントをロードしたいと思います。

これのかなり良い代理は「電話またはタブレット」であり、タブレットは通常「良好な接続」のカットオフです. これはちょっと動作しますが、3g/4g タブレットがあり、wifi に接続された電話があるため、完璧ではありません。

これ以上改善することはできないと思いますが、おそらくスタックオーバーフローの集合的な知恵が方法を発見したのでしょう。これは検出可能ですか?

4

5 に答える 5

3

モバイルに焦点を当てるかどうかではなく、帯域幅のテストだけを行ってください。本当に確実な唯一の方法は、ファイルをデバイスにダウンロードする時間を測定することです。

ここで受け入れられた答えを試してください: Javascriptでインターネット速度を検出する方法は?

于 2012-07-25T20:16:57.973 に答える
2

この回答で提案されている解決策、つまり を試すことができますnavigator.connection.type。ただし、これは明らかに非標準であり、Android デバイスのみに限定されているようです。また、同じオブジェクトのプロパティについて言及しているMDN エントリも参照してください。これも役立つ場合があります。meterednavigator.connection

最高のカバレッジのために:var connection = navigator.connection || navigator.mozConnection || navigator.webkitConnection;

于 2012-07-25T20:16:33.097 に答える
1

私が知っているこれを行う唯一の方法は、それ自体の問題がありますが、要求時に (Web サーバー上で) 要求の IP アドレスを逆引きして、それがワイヤレス キャリアからのものかどうかを確認することです。これには 2 つの問題があります。モバイル デバイスが有線ネットワークとは異なるネットワークを使用しているかどうかはわかりません (バージョン ワイヤレスとバージョン Fios)。もう 1 つの問題は、実際に有線である可能性のある企業の従業員がワイヤレスに見えることです。

于 2012-07-25T20:16:24.483 に答える
0

192.168.1.100や友人など、非常に一般的なローカルアドレス(Wi-Fi経由でのみ到達可能)に対してネットワークプローブを実行してみることができます。方法は次のとおりです。

  • ハンドラーを使用してimg要素を作成します。onError
  • プロパティを「ping」するアドレスに設定しsrcます
  • エラーが発生した場合は、アドレスが存在しないことがわかります
  • エラーがないということは、アドレスが存在することを意味します

私は最初にこのテクニックについてAjaxSecurity(すばらしい本)で読みました。

于 2012-07-25T20:18:39.450 に答える
0

JavaScript は、ネットワーク レベルの接続タイプへのフックを提供しません。最善の方法は、既知のテスト ファイルをダウンロードする時間を計り、それに基づいて決定することです。

それが失敗した場合は、ユーザーに高/低帯域幅の設​​定を好むかどうかを尋ねてください。

于 2012-07-25T20:14:50.023 に答える