V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
PINGms
V2EX  ›  分享创造

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

  •  1
     
  •   PINGms · 2018-06-28 19:15:48 +08:00 · 3892 次点击
    这是一个创建于 2349 天前的主题,其中的信息可能已经有所发展或是发生改变。
    倒腾了两天,终于原生 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 不是“完美”,是天才……已经看到你的最新代码,我自己的页面真的是差远了……倒腾这个工具的时候,我看了很多类似工具的页面,没有一个比得上你的。
    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   ·   实用小工具   ·   5261 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 03:50 · PVG 11:50 · LAX 19:50 · JFK 22:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.