我们要求客户为拨号提供“精简版”版本,并为宽带用户提供所有铃声和口哨声。
该解决方案将使用Flex / Flash / Java EJB和一些jsp。
Web服务器有没有办法区分这两者?
答案 0 :(得分:16)
您不关心用户的连接类型,您关心下载速度。
有一个微型闪存应用程序可以下载闪存的剩余部分,并计算需要多长时间。或者是一个HTML页面,它会计算Ajax下载的时间。
如果下载功能丰富的应用程序需要太长时间,请将最初下载的存根页面/闪存重定向到慢速下载页面(或下载简单的Flash应用程序,或其他任何内容)。
答案 1 :(得分:3)
最简单,最可靠的机制可能是让用户从下拉列表中选择他们的连接类型。很简单,我知道,但它可以为你节省一个悲伤的世界!
答案 2 :(得分:3)
无法区分宽带或拨号作为连接类型,但您可以通过连接速度进行有根据的猜测。
Gmail会执行此操作,并在检测到服务时提供指向其服务的基本HTML版本的链接。
(来源:nirmaltv.com)
我的猜测是,在AJAX请求上进行了一些客户端javascript轮询。如果周转时间超过阈值,则会出现切换到“lite”的选项。
关于此选项的最佳部分是允许用户选择,如果他们想要使用精简版而不是强制它们。
答案 3 :(得分:1)
我认为这种方法的典型方法就是询问用户。如果您不确定您的用户会提供准确的答案,我怀疑您必须编写一个在客户端上运行速度测试的应用程序。通常,这些记录客户端接收x个字节所需的时间,并使用它来确定带宽。
Actionscript 3有一个库可以帮助您完成此任务,但我相信它需要您在Flash Media Server上部署Flex / Flash应用程序。有关详细信息,请参阅ActionScript 3.0 native bandwidth detection。
答案 4 :(得分:1)
以下是尝试类似内容的代码的简短代码段。它在C#中,但它很短,而且只是感兴趣的概念。
Determine the Connection Speed of your client
当然,它们可能是一个临时速度问题,与您在测试等时的用户连接无关。
几年前我遇到过类似的问题,让用户在hi和lo带宽网站之间做出选择。我在页面上加载的第一件事就是这个选项,所以他们可以快速前进。
答案 5 :(得分:1)
@Apphacker(如果我有足够的声誉,我会评论而不是回答......):
不能保证反向 - 我有Earthlink拨号,很快升级到Earthlink DSL(这是可用的......)。
答案 6 :(得分:0)
您可以检查他们的IP并查看它是否已解析为/已分配给拨号提供商,例如AOL,Earthlink,NetZero。不能保证那些不解决这种提供商的人是宽带用户。
答案 7 :(得分:0)
我认为速度测试应该足够了。
如果您只有一个众所周知的小用户组,有时可以通过ip确定连接速度。 (某些提供商为拨号/宽带连接分配不同的子网)