V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
BigZ
V2EX  ›  程序员

google的js库被墙的解决方法

  •  
  •   BigZ · 2012-11-11 02:31:11 +08:00 · 15930 次点击
    这是一个创建于 4396 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我封装成了一个django的tag,大家可以直接用,也可以改写成其他语言的模板函数,自适应的啊
    代码地址: http://lutaf.com/49.htm
    23 条回复    2015-05-26 16:50:21 +08:00
    ejin
        1
    ejin  
       2012-11-11 04:36:55 +08:00
    看到这种代码特别郁闷,为什么非要都用Google的js库呢?

    明知道容易被墙,我经常打开别人博客,打开糗事百科,打开很多网站都是这样,现在Google出问题的时候来了,页面半天被这个js给阻塞不显示了,还要优先用Google,自己文章也说了,微软跟中国的关系好不容易被屏蔽,容易被屏蔽的反而优先?

    一个几十k的js文件放自己网站上又能有多大问题?能架设个网站会连这点流量都舍不得?你是真没有体会过还是假没有体会过ajax.googleapis.com出问题的时候是什么情况?是页面一直都是白板,几十秒都是,甚至要等几分钟才会超时。其原因就是开发者不考虑国情,jq的库在微软,在新浪都是有的,都用那些稳定的不好吗?就算那些大公司提供的可能有一天出问题那么自己网站放个js文件又怎么了?
    jybox
        2
    jybox  
       2012-11-11 04:45:38 +08:00   ❤️ 2
    @ejin 不光是流量,使用公共的库,可以在多个网站间共享缓存

    如果不考虑墙的问题google应该算是最稳定的。但现在这情况嘛,用国内一些站点的库比较好一些
    ejin
        3
    ejin  
       2012-11-11 04:45:59 +08:00
    标题还美曰其名解决办法,真正的解决办法是把js放到本地,用自己网站服务器来存储和引用,这样你网站能打开的时候js库绝对没问题,你的解决办法是先调用google,google的不行再调用微软,但是谷歌的墙不是说这个库获取不到马上会返回404返回502或者直接返回无法连接,而是最讨厌的一直连接不上,但是又不会断开,一定等到超时,这时候页面一直白屏,其实页面其他资源早就下载完了。你觉得问题解决了?是的,js是能正常运行了,但是那卡住白屏的几十秒甚至几分钟,是问题解决的现象吗?你们有测试过自己的代码吗?看到别人有个所谓的“解决办法”就开始疯狂的转载传播,这样类似的代码我在这几天已经看到无数次了。我真的希望你们不要再误导别人了。
    ejin
        4
    ejin  
       2012-11-11 04:52:56 +08:00
    @jybox 你这个原因我懂,但是我已经不是一次两次遇到因为引用Google的JQ库白屏的网站了,是非常多,Google的这个js库被墙是什么状态?一直提示正在连接ajax.googleapis.com.然后页面一直白屏卡住,如果再像楼主的那样代码,先调用Google的然后在调用不成功的时候(等白屏超时结束了!)才做出选择,有什么用?页面都卡了几十秒甚至更久了。

    我知道Google的这个非常好,是的我一直觉得Google的很多东西都好,但是像这种经常被墙的情况下,是不是该考虑使用其他的呢?如果比速度的话我想新浪的不会差很多。但是不会被墙,这个绝对是Google无法比的,就算新浪觉得不靠谱,微软总可以吧?什么微软都不放心?那还是放自己网站吧!

    像我们懂点翻.墙的,就可以写个规则直接避免,但是对于普通用户是非常无奈的。如果你是一个普通用户,打开一个网站常常每个页面都要白屏几十秒甚至几分钟,你是何感受?
    ejin
        5
    ejin  
       2012-11-11 05:04:18 +08:00
    @jybox 还有我觉得如果开发的程序是给没有自主维护能力的使用的话,尽量使用网站自身的空间存储和引用比较好,我觉得稳定性还是比较重要的,说白了就是几十k的东西,一张图片也差不多这么大,如果是网站掌握在自己手里,那不管用什么,出问题的时候自己能处理切换都是可以的。
    BigZ
        6
    BigZ  
    OP
       2012-11-12 22:41:58 +08:00
    @ejin 这位兄弟太耿直了
    js用google cdn是国际通行做法,主要是国情太变态了,我也赞同用本地js的说法
    sobigfish
        7
    sobigfish  
       2012-11-12 22:51:50 +08:00
    囧,一般的办法是google的没生效用自己host的,你这2个都是外部调用,在2个都被墙的时侯就杯具了。
    BigZ
        8
    BigZ  
    OP
       2012-11-12 22:53:58 +08:00
    @sobigfish 微软产品历史没有被强奸过啊,盖主席是党员
    sobigfish
        9
    sobigfish  
       2012-11-12 23:06:50 +08:00
    @BigZ 考虑极端情况么,比如有过2 3次的无法访问国外网站那种时候。
    或者MS 忘了续费aspnetcdn.com,JK...
    BigZ
        10
    BigZ  
    OP
       2012-11-12 23:17:21 +08:00
    @sobigfish 那会是全球轰动新闻
    xinyu198736
        11
    xinyu198736  
       2012-11-12 23:25:27 +08:00
    为啥不用 淘宝的 腾讯的 微博的。

    这些都很稳定,而且cdn都是只增不减的,不会无故消失掉。。。
    而且这些网站的cdn的速度都是一流的。。。。
    BigZ
        12
    BigZ  
    OP
       2012-11-12 23:34:27 +08:00
    Narcissu5
        13
    Narcissu5  
       2012-11-13 00:23:47 +08:00
    一个请求几十k,成百上千个请求呢?尤其是走3G网络的,还是蛮吓人的。
    tshwangq
        14
    tshwangq  
       2012-11-13 02:32:19 +08:00
    服务器端判断一下ip得了。
    enj0y
        15
    enj0y  
       2012-11-13 03:14:50 +08:00
    如果是jQuery,希望对大家有用。
    国内外jQuery源分享: http://www.it68.com.cn/2012/10/jquery_9338.html
    upupxjg
        16
    upupxjg  
       2012-11-14 20:33:30 +08:00
    好多云服务商都有免费的JS提供 比如sae。。。 速度快稳定性也还行
    ejin
        17
    ejin  
       2012-11-15 19:24:52 +08:00
    @BigZ 还是那句话,你这个代码在google被墙的时候卡上几十秒甚至几分钟,这段时间我这里都是这个样子(江西电信),我不知道其他地方是什么情况,但是这样的情况已经出现了很多次,你这所谓的解决办法可以说是问题得不到解决,还继续传播下去只会害了更多人,生产环境稳定为先,为什么门户网站不去用这个免费的资源呢?光是速度问题吗?那SAE的会很慢吗?自己想想吧。
    ejin
        18
    ejin  
       2012-11-15 19:31:10 +08:00
    @Narcissu5 别人会缓存你自己服务器就不会缓存吗?一个几十k成千上万很多?你的网站再大,和门户网站比起来又如何?为什么门户站都是用自己的不去用SAE提供的源呢?难道速度会比门户站慢多少么?我看不见得。都是国内而且有CDN,为什么不去省这个流量呢?

    生产环境最重要的是稳定,Google的源已经在国内被XXX过很多次了,每次出问题的时候,会阻塞页面几十秒,不是你写个判断就能跳过的,亲身体会,如果开发者还在没头脑的疯狂传播,受害的最终还是用户。开发程序必然要考虑到未来的各种因素,稳定才是最重要的,如果Google容易出问题,为何不微软的源优先呢?微软的速度慢为什么不用新浪的SAE的源呢?

    好好想想吧
    BigZ
        19
    BigZ  
    OP
       2012-11-15 19:34:05 +08:00
    @ejin 帅哥,你太执着了,我怕了,http://lutaf.com 已经换成本地jquery了,请检查
    ejin
        20
    ejin  
       2012-11-15 23:05:52 +08:00
    @BigZ 不是我太执着,是你那之前代码根本解决不了问题,你的代码确实可以让那些依赖jq的代码可以继续运行,但是网页白屏阻塞几十秒的问题依然得不到解决,这个主题里已经不止一次不止一人谈到了效率缓存等等,试问一下,html几百毫秒甚至1-2秒就能加载完,但是要干等着google的这个js阻塞导致白屏几十秒,然后判断jq是否加载成功的判断才会执行,就算jq最后成功加载了,又有什么意义。

    楼主传播解决办法是好的,但是不能一味的转载而不去了解这代码是否真正的解决了问题,Google的这个情况是比较特殊的,我也觉得Google非常好,但是国情导致这样是没有办法的,但是出了问题该抛弃的还得抛弃,生产环境稳定为先,不可能三天两头换来换去的。
    BOYPT
        21
    BOYPT  
       2012-11-16 09:02:36 +08:00
    1.疯狂的转载传播也是基本国情,不管有没有价值是否正确,中文资料历来如此
    2.微软的站也用了google的cdn,被媒体拿来揶揄
    3.中国互联网跟世界不大兼容
    ry
        22
    ry  
       2014-07-12 15:46:46 +08:00
    帅哥 求翻墙 规则 的码
    KINGOD
        23
    KINGOD  
       2015-05-26 16:50:21 +08:00
    疯狂同意 @ejin

    经常因为 ajax.googleapis.com 的问题白屏N分钟。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   958 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 20:29 · PVG 04:29 · LAX 12:29 · JFK 15:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.