StackOverflow是一个面向程序员的技术问答平台。可是在不FQ的情况下,浏览StackOverflow是一件让人极不舒服的事情,常常需要等待数十秒页面才慢慢显示出来。本文我教大家一种能够流畅地使用StackOverflow的小技巧。

页面加载缓慢的原因

  在不使用任何vpn的情况下,我们打开StackOverflow,以下是我用Chrome开发者工具看到的这个过程:

很明显jquery.min.js请求超时,居然花了21.02s!点开之后我们便找到了请求超时的原因了:

ajax.googleapis.com是谷歌提供的CDN服务,由于google被墙,因此我们是无法请求到这个js库的。虽然国内也有许多CDN服务,例如360、百度、七牛云等都提供了JavaScript库的CDN加速服务,但是StackOverFlow并没有考虑到我们国内开发者的特殊情况,给我们选用国内的公共JS库。因此我们打开StackOverFlow的时候大部分时间都是在等待ajax.googleapis.com的响应。

本地JavaScript库的CDN服务

     在墙内请求ajax.googleapis.com是不可能的了,我们也不可能修改StackOverFlow的源码调用国内服务商提供的服务。但是我可以控制ajax.googleapis.com域名在我本地被解析到哪个IP上!这里我们就使用hosts文件给ajax.googleapis.com重定向到本地,到时候浏览器请求ajax.googleapis.com的时候就不需要先去DNS解析了。在hosts文件末尾加上这么一行即可:

127.0.0.1 ajax.googleapis.com

之后使用“ipconfig /flushdns”这个命令刷新一下本地的DNS缓存。ping一下ajax.googleapis.com,应该能返回127.0.0.1:

现在ajax.googleapis.com已经被解析到本地,但是我们还缺一个web服务器。用自带的IIS是一种方法,但是有点高山炮打蚊子的意思。我选择的是一款比较小的软件HTTP FILE SERIVE,只有700kb,不过已经足够使用了(具体选择什么,你可以百度找去关键字 mini HTTP 太多选择了)。

      首先下载jquery.min.js文件到本地,我已经传到我的博客上了,这是链接:https://files.cnblogs.com/files/ittinybird/jquery.min.js。然后再按照前面HTTP请求中的“http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js”,构造出本地的web服务器的文件路径,确保浏览器中访问时能够正确找到文件:

到现在,这个jquery库在本地CDN服务就已经搞定了。

访问效果

     这是我测试时的访问效果,怎么样够快吧!如果你觉得够快,不妨给个赞吧,哈哈。快来试试吧

更多的方法—网友的分享

      收到各位网友的热心的分享,现在我更新出来一些其他的方法:

1.使用fiddler重定向,可以将http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js 替换成自己的jquery.min.js所在的url。(chrome浏览器有插件)

2.把上文中的127.0.0.1 直接换成103.7.200.79 ,不需要本地搭设服务器了。

3.chrome插件 gooreplacer(需FQ)。这是中科大的API。

版权声明:本文为ittinybird原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/ittinybird/p/4857066.html