StackOverflow是一个面向程序员的技术问答平台。可是在不翻墙的情况下,浏览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文件到本地,我已经传到我的博客上了,这是链接:http://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(需翻墙)。这是中科大的API。

无需FQ,自建本地CDN,秒上StackOverFlow!的更多相关文章

  1. JS 重载页面,本地刷新,返回上一页

    JS 重载页面,本地刷新,返回上一页 : <a href="javascript:history.go(-1)">返回上一页</a> <a href= ...

  2. 如何通过Git GUI将自己本地的项目上传至Github

    最近在学习node.js和react,顺便复习了下AngluarJS相关的东西,写了些小demo想放在GitHub上,之前仅限于只申请了GitHub账号从没用过,今天花半天时间查资料认真学习Githu ...

  3. Maven中安装本地Jar包到仓库中或将本地jar包上传

    摘要 maven install 本地jar 命令格式 mvn install:install-file -DgroupId=<group_name> -DartifactId=<a ...

  4. 在本地windows机器上安装SecureCRT客户端

    一.SecureCRT客户端介绍. SecureCRT是一款支持SSH(SSH1和SSH2)的终端仿真程序,简单地说是Windows下登录UNIX或Linux服务器主机的软件. SecureCRT支持 ...

  5. JS代码实用代码实例(输入框监听,点击显示点击其他地方消失,文件本地预览上传)

    前段时间写前端,遇到一些模块非常有用,总结以备后用 一.input框字数监听 <!DOCTYPE html> <html lang="en"> <he ...

  6. LocalResizeIMG前端HTML5本地压缩图片上传,兼容移动设备IOS,android

    LocalResizeIMG前端HTML5本地压缩图片上传,兼容移动设备IOS,android jincon 发表于 2015-02-26 18:31:01 发表在: php开发 localresiz ...

  7. 第五十六篇、OC打开本地和网络上的word、ppt、excel、text等文件

    iOS打开本地和网络上的word.ppt.excel.text等文件 iOS开发过程中可能需要预览一些文件,这些文件的格式可能有word.ppt.excel等文件格式.那么系统提供两个类去预览这些文件 ...

  8. mac下安装git,并将本地的项目上传到github

    mac下安装git 安装过程: 1.下载Git installer http://git-scm.com/downloads 2.下载之后打开,双击.pkg安装 3.打开终端,使用git --vers ...

  9. Coding theano under remote ubuntu server from local Mac (在本地mac机器上,写、跑、调试、看-远程ubuntu上的theano代码)

    本人是奇葩,最近鼓捣了一套在mac上coding远程ubuntu上的theano代码的东东,记之以期造福后人. Overview: 下图是我的编程环境和网络环境 我期望能在本地mac机器上对远程的ub ...

随机推荐

  1. Asp.net 面向接口可扩展框架之“Mvc扩展框架及DI”

    标题“Mvc扩展框架及DI”有点绕口,我也想不出好的命名,因为这个内容很杂,涉及多个模块,但在日常开发又密不可分 首先说Mvc扩展框架,该Mvc扩展就是把以前的那个Mvc分区扩展框架迁移过来,并优化整 ...

  2. Java基本概念(1)什么是Java

    什么是Java Java是一种开发语言(核心特点:跨平台,面向对象,名称由来看这里:J2EE里面的2是什么意思),对于开发者来讲,Java基本等于Jdk. Jdk的版本介绍看这里:Java都有那些版本 ...

  3. 2、Python运算符与表达式

    1.运算符 >>>3+5 8 >>>3-5 2 >>>2*3 6 >>>2**3 8 #幂 >>>4/2 2. ...

  4. PrototypePattrn(原型模式)

    /** * * @author TMAC-J * 原型模式,可以说是简化的工厂模式 * 与工厂模式的区别是工厂模式可以生产很多的产品,而原型模式仅仅是复制而已 * 这里有一个问题:深克隆和潜克隆的问题 ...

  5. ABP使用及框架解析系列 - [Unit of Work part.2-框架实现]

    前言 ABP ABP是“ASP.NET Boilerplate Project”的简称. ABP的官方网站:http://www.aspnetboilerplate.com ABP在Github上的开 ...

  6. 微信公众平台自动回复wechatlib.jar的生成及wechatlib解析

    微信公众平台出来有一段时日了,官方提供的自动回复的接口调用大致是这么些类型(text/image/location/link),每个项目都如此拷贝代码,在笔者看来比较麻烦,今天乘着点闲暇的时间特意将这 ...

  7. Mvc与WebForm优缺点及Mvc的使用

    关于Mvc与WebForm的优缺点在网上的评论可谓不胜枚举,但脱离了我们的项目来谈这些意义就不大了.以我们这次改版来看,WebForm的优势有以下几点: 一,可以使用<#include>, ...

  8. String类型的属性和方法

    × 目录 [1]属性 [2]对象通用方法 [3]访问字符方法[4]字符串拼接[5]创建子串方法[6]大小写转换[7]查找子串位置[8]正则匹配方法[9]去除首尾空格[10]字符串比较 前面的话 前面已 ...

  9. H5学习

    1.html{font-size:62.5%;}//不用font-size:10px的原因:(因为设了62.5%后就有1rem = 10px,便于用rem来指定元素的尺寸,这样响应式的时候可以直接改变 ...

  10. IOS开发基础知识--碎片42

    1:报thread 1:exc_bad_access(code=1,address=0x70********) 闪退 这种错误通常是内存管理的问题,一般是访问了已经释放的对象导致的,可以开启僵尸对象( ...