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。
原文链接:https://www.cnblogs.com/ittinybird/p/4857066.html
原创文章,作者:优速盾-小U,如若转载,请注明出处:https://www.cdnb.net/bbs/archives/3807