能否用js ajax判断用户是否被墙,(js版的reachability)求解决方案 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a Javascript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
Javascript 权威指南第 5 版
Closure: The Definitive Guide
run2
V2EX    Javascript

能否用js ajax判断用户是否被墙,(js版的reachability)求解决方案

  •  
  •   run2 2012-02-07 18:15:15 +08:00 2073 次点击
    这是一个创建于 5069 天前的主题,其中的信息可能已经有所发展或是发生改变。
    大家浏览网站经常发现国外页面读到一半不读了吧,极有可能是在加载fb twitter的js造成的
    这样造成了非常不好的用户体验。所以我不翻墙的时候都用abp把两家的js过滤掉。

    我的想法是用js判断用户的网络能否加载fb twitter再决定是否添加相关的js

    但貌似js判断的只有连的通 或超时...
    怎么判断用户网络的加载平均时间,并用这个时间做为判断是否被墙的超时时间呢。
    6 条回复    1970-01-01 08:00:00 +08:00
    airyland
        1
    airyland  
       2012-02-07 18:43:29 +08:00
    run2
        2
    run2  
    OP
       2012-02-07 19:02:51 +08:00
    上面那贴还在说异步加载啊,我是主要想实现reachability的功能
    ayanamist
        3
    ayanamist  
       2012-02-07 23:05:39 +08:00
    如果只是要通过平均加载时间来判断,那所有js都用异步方式加载,然后在加载script前记录一个时间,加载成功后记录一个时间,比较时间差就可以得出延迟了。
    js不是万能的,大部分服务器端操作是无法用js来代替的。
    还有一个比较简单的办法是通过IP判断,返回一个值说明是不是国内IP。不过这也不是纯js方案
    run2
        4
    run2  
    OP
       2012-02-08 10:49:37 +08:00 via iPad
    @ayanamist node.js 除外呵呵,看来除非浏览器api/js引擎增加这方面支持,现在是不可能了
    benzhe
        5
    benzhe  
       2012-02-08 11:02:21 +08:00
    "怎么判断用户网络的加载平均时间,并用这个时间做为判断是否被墙的超时时间呢。"
    这个问题本来就不现实的,比如某地方网速很快,1秒对它来说就是超时了;而另一个地方网速很慢,20s才算超时,综合两种情况,“超时”究竟是超的哪个时?

    而“用js判断用户的网络能否加载fb twitter再决定是否添加相关的js ”,这个问题则用异步能非常完美地解决,所以没必要把简单问题复杂化哦。超时问题一般来说会用http状态代码判断,即异步方案
    run2
        6
    run2  
    OP
       2012-02-08 11:12:01 +08:00 via iPad
    @benzhe 我的意思就是加载本网站页面的时候判断啊,body首尾能行么,再将这个时间运算得到一个相对用户合适的超时时间。呃,我确实复杂化了,因为我贪心的想要个判断能否连通的类,不是一定用在fb的
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3189 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 22ms UTC 10:53 PVG 18:53 LAX 02:53 JFK 05:53
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86