お客様からは、ダイヤルアップ用の「ライト」バージョンとブロードバンドユーザー向けのすべてのベルとホイッスルを提供する必要があります。
このソリューションでは、Flex / Flash /JavaEJBといくつかのjspを使用します。
Webサーバーが2つを区別する方法はありますか?
ユーザーの接続タイプは気にせず、ダウンロード速度も気になります。
残りのフラッシュをダウンロードし、所要時間を計る小さなフラッシュアプリを用意します。または、Ajaxのダウンロードにかかる時間を計測するHTMLページ。
豊富な機能を備えたアプリのダウンロードに時間がかかりすぎる場合は、最初にダウンロードしたスタブページ/フラッシュを低速ダウンロードページにリダイレクトします(または、必要最低限のフラッシュアプリなどをダウンロードします)。
最も単純で信頼性の高いメカニズムは、おそらくユーザーにドロップダウンから接続タイプを選択させることです。簡単です、私は知っています、しかしそれはあなたに悲しみの世界を救うかもしれません!
接続の種類としてブロードバンドとダイヤルアップを区別する方法はありませんが、接続速度から推測することはできます。
Gmail はこれを行い、サービスを検出すると、サービスの基本的な HTML バージョンへのリンクを提供します。
(出典: nirmaltv.com )
私の推測では、AJAX 要求に対して行われるクライアント側の JavaScript ポーリングがいくつかあると思います。ターンアラウンド タイムがしきい値を超えると、「lite」に切り替えるオプションが表示されます。
このオプションの最も良い点は、ユーザーが強制するのではなく、ライト バージョンを使用するかどうかを選択できることです。
これに対する典型的なアプローチは、ユーザーに尋ねるだけだと思います。ユーザーが正確な回答を提供することに自信がない場合は、クライアントで速度テストを実行するアプリケーションを作成する必要があると思います。通常、これらはクライアントが x バイト数を受信するのにかかる時間を記録し、それを使用して帯域幅を決定します。
Actionscript 3 には、このタスクに役立つライブラリがありますが、Flex/Flash アプリを Flash Media Server にデプロイする必要があると思います。詳細については、 ActionScript 3.0 のネイティブ帯域幅検出を参照してください。
これは、似たようなことを試みたコードからの短いコード スニペットです。これは C# で書かれていますが、かなり短く、興味深いのはその概念だけです。
もちろん、テスト時のユーザーの接続とは関係のない一時的な速度の問題である可能性もあります。
私は数年前に同様の問題を抱えていましたが、ユーザーに高帯域幅サイトと低帯域幅サイトのどちらかを選択させました. 私がページに最初にロードしたのはこのオプションだったので、彼らはすぐに先に進むことができました.
@Apphacker(十分な評判があれば、答える代わりにコメントします...):
逆も保証できません--私はEarthlinkダイヤルアップを持っていますが、すぐにEarthlink DSLにアップグレードします(ここで利用できるものです...)。
彼らのIPをチェックして、AOL、Earthlink、NetZeroなどのダイヤルアッププロバイダーに解決されるか、割り当てられているかどうかを確認できます。そのようなプロバイダーに解決しないものがブロードバンドユーザーであることを保証するものではありません。
あなたは出来る ...
スピードテストで十分だと思います。
よく知られている小さなユーザーグループしかない場合は、IPによって接続速度を判断できる場合があります。(一部のプロバイダーは、ダイヤルアップ/ブロードバンド接続に異なるサブネットを割り当てます)