JS 黑科技:查询浏览器到所有云服务的速度 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
PINGms
V2EX    分享创造

JS 黑科技:查询浏览器到所有云服务的速度

  •  1
     
  •   PINGms 2018-06-28 19:15:48 +08:00 4288 次点击
    这是一个创建于 2665 天前的主题,其中的信息可能已经有所发展或是发生改变。
    倒腾了两天,终于原生 JS 搞定,没有使用任何“框架”,就一个 JS 文件……

    主页: http://www.pingms.com/ (每个云服务需要两个 HTTP 请求,第一个用来搞定 DNS )
    代码: https://github.com/pingms/pingms (求 star )

    测试结果还是比较准确的:首先可以 F12 调试工具看到精确毫秒数值;然后我用亚特兰大$$测试,测试结果是亚特兰大最快。

    (想发布在“分享创造”里面,结果第一次发帖跑到了“ zhan 长”里面,还不能删除帖子……这次把“ ji 房”替换成“云服务”,希望可以发布在“分享创造”里面……希望不会给大家带来麻烦)
    31 条回复    2018-07-02 22:17:11 +08:00
    LeungJZ
        1
    LeungJZ  
       2018-06-28 19:42:32 +08:00 via iPhone
    PINGms
        2
    PINGms  
    OP
       2018-06-28 20:05:32 +08:00
    @LeungJZ 晕倒,全部是开源代码,代码在 https://github.com/pingms/pingms …… 然后你可以去查域名 WHOIS,域名总共注册才两天 …… 我也不知道这是什么鬼。
    wspsxing
        3
    wspsxing  
       2018-06-28 21:09:01 +08:00
    看起来不错,希望能多加一些。
    PINGms
        4
    PINGms  
    OP
       2018-06-28 22:17:42 +08:00
    @wspsxing 你希望添加哪些云服务呀?
    wspsxing
        5
    wspsxing  
       2018-06-28 23:48:04 +08:00
    @PINGms 越多越好啊。
    dingtian
        6
    dingtian  
       2018-06-29 07:39:14 +08:00 via iPhone
    测了,我这到哪都 5、600ms
    maemolee
        7
    maemolee  
       2018-06-29 09:36:02 +08:00
    这个代码能在 JSBox 跑吗?
    maemolee
        8
    maemolee  
       2018-06-29 09:46:34 +08:00
    求移植到 JSBox
    DRcoding
        9
    DRcoding  
       2018-06-29 09:51:09 +08:00
    控制台很多的 404 请求,为啥不直接发一个 head 请求呢
    PINGms
        10
    PINGms  
    OP
       2018-06-29 10:43:41 +08:00
    @wspsxing 云服务太多了,请给出最重要的几个。
    PINGms
        11
    PINGms  
    OP
       2018-06-29 10:48:36 +08:00
    @dingtian 如果觉得数值不对,请 F12,Network,刷新页面……可以看到精确毫秒数值……如果确实有 bug,请一定告诉我……当然我自己检查过了,应该没问题哈。
    PINGms
        12
    PINGms  
    OP
       2018-06-29 10:59:19 +08:00
    @maemolee 先研究一下哈。目前测试通过:Chrome, Firefox, iPad, Xiaomi。
    PINGms
        13
    PINGms  
    OP
       2018-06-29 11:08:15 +08:00
    @DRcoding 原因很简单:因为测试“跨域”( cross domain ),JS 很可能不可以直接访问目标服务器。而且这东西可能过于复杂: https://security.stackexchange.com/questions/39588/in-which-ways-could-a-Javascript-making-a-cross-domain-head-request-be-a-threat
    BitBoX
        14
    BitBoX  
       2018-06-29 13:18:46 +08:00
    楼主 能信息页面 做个表格 整理就好了。信息就清楚明白了。
    codehz
        15
    codehz  
       2018-06-29 22:27:30 +08:00
    我觉得 UI 可以改进一下。。
    PINGms
        16
    PINGms  
    OP
       2018-06-29 23:08:01 +08:00
    @BitBoX 这种数据做表格是最清楚的,但是内容占的地方就大了……这个页面故意做成“看起来内容很少”。
    PINGms
        17
    PINGms  
    OP
       2018-06-29 23:16:17 +08:00
    @codehz 请问 UI 哪里可以改进一下呀……这里有几个类似的页面: http://www.azurespeed.com/ http://ec2-reachability.amazonaws.com/ http://www.cloudping.info/ ……哪个页面看起来更好呢?
    codehz
        18
    codehz  
       2018-06-29 23:23:55 +08:00
    @PINGms #17 我已经 fork 并准备 PR 了(
    另外“看起来内容很少”并不需要通过这种糟糕的排版方式来做到(这种糟糕的排版已经严重影响可用性了。。。
    顺便吐槽一下这个糟糕的 js 代码(为啥说糟糕,使用变量不提前声明算是一个,另外明明可以用 js 生成内容,非要写一大段 html 然后再让 js 绕回来解析,实在是没弄清这样设计的理由(
    codehz
        19
    codehz  
       2018-06-30 00:30:45 +08:00
    这是我改进的界面,大家觉得如何(注:移动端自动单列模式),另外延迟测量结果是动态更新的
    B1ock
        20
    B1ock  
       2018-06-30 12:23:37 +08:00
    @codehz 很棒
    PINGms
        21
    PINGms  
    OP
       2018-06-30 13:23:56 +08:00
    @codehz 太牛了,已经 star 你的代码……然后回答你的问题:“写一大段 html 然后再让 js 绕回来解析”,添加删除就不用修改 JS 啦(目前还要改一个“ sections ”变量,很容易可以做成“完全不修改 JS ”);“使用变量不提前声明”,自己觉得使用的这些变量还是很清晰的……然后关于你的代码,提几个意见哈:F12 Network 查看了 HTTP 请求,目前你那边的测试 URL 的文件大小不一样,建议还是搞成“ 404 ”(页面文件大小一致);机房名称和毫秒数值靠近一些,这样看起来更轻松。
    fakeJas0n
        22
    fakeJas0n  
       2018-06-30 13:34:44 +08:00
    为什么没有瓦工
    PINGms
        23
    PINGms  
    OP
       2018-06-30 13:43:01 +08:00
    @fakeJas0n 瓦工的速度测试地址在哪呀?我找了半天,硬是没有找到(很尴尬)……其他的云服务一下就 google 出来速度测试地址了。
    fakeJas0n
        24
    fakeJas0n  
       2018-06-30 14:08:27 +08:00
    @PINGms #23 只知道这个 https://bwhstatus.com/
    codehz
        25
    codehz  
       2018-06-30 14:46:18 +08:00   1
    @PINGms #21
    完全不修改 html 和完全不修改 js 应该是差不多的,主要用 html 的话,你想改一下格式就很难受了(
    网址的问题,好像我拼接错了。。。等会改了就好。
    机房名称的问题,主要是为了对齐,所以有一个 DDoS-Protected Los Angeles 这个就强行拉开了。。。 然后右侧对齐的话,又不是很好看,我考虑了一下,似乎可以交换一下位置,左边显示延迟,右侧显示名字(完美(



    现在的效果
    PINGms
        26
    PINGms  
    OP
       2018-06-30 18:54:20 +08:00
    @fakeJas0n 哥们,这个不顶用呀……
    PINGms
        27
    PINGms  
    OP
       2018-06-30 19:02:48 +08:00
    @codehz 不是“完美”,是天才……已经看到你的最新代码,我自己的页面真的是差远了……倒腾这个工具的时候,我看了很多类似工具的页面,没有一个比得上你的。
        28
    codehz  
       2018-06-30 19:15:16 +08:00
    @PINGms #27 提一点哈,我没做过兼容性测试,虽然我已经极力避免使用高级特性了,但是还是很难保证不会出现什么问题。。。(主要没有那么多的设备可以测试,PS:我只在 chrome 69 上测试过。。。)
    我已经放 github page 上一份了,大家想测试兼容性的,可以来玩玩(
    https://codehz.github.io/pingms/
    cesar
        29
    cesar  
       2018-06-30 23:30:42 +08:00 via iPhone
    Linode Singapore 比日本低了?
    难道直接了?
    我记得以前要绕路的
    codehz
        30
    codehz  
       2018-07-01 10:50:37 +08:00 via Android
    @cesar 你是看了我的截图是吧,那个是走了代理了,测试的时候没把那几个地址设置为直连
    PINGms
        31
    PINGms  
    OP
       2018-07-02 22:17:11 +08:00
    @codehz 兼容性已经搞定了,主要是把长条的颜色特效去掉,就可以在古董设备( Android 4 iOS 10 )正常运行。

    新的 CSS 代码在:
    https://github.com/pingms/pingms/blob/master/style.css
    (就改动了几个地方,所有更改用“/* ***** */”标注)
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     920 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 20:53 PVG 04:53 LAX 13:53 JFK 16:53
    Do have faith in what you're doing.
    ubao 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