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. C#基础-FileStream实现多线程断点续传

    一.前言 网上有许多的多线程断点续传操作,但总是写的很云里雾里,或者写的比较坑长.由于这几个月要负责公司的在线升级项目,所以正好顺便写了一下 代码如下: using System; using Sys ...

  2. 学习笔记之-------UIScrollView 基本用法 代理使用

    //contentSize.contentInset和contentOffset 是 scrollView三个基本的属性. // 滚动 self.ScrollView.contentSize =sel ...

  3. ios 文件操作(NSFileManager)

    IOS的沙盒机制,应用只能访问自己应用目录下的文件,iOS不像android,没有SD卡概念,不能直接访问图像.视频等内容. iOS应用产生的内容,如图像.文件.缓存内容等都必须存储在自己的沙盒内. ...

  4. 背水一战 Windows 10 (23) - MVVM: 通过 Binding 或 x:Bind 结合 Command 实现,通过 ButtonBase 触发命令

    [源码下载] 背水一战 Windows 10 (23) - MVVM: 通过 Binding 或 x:Bind 结合 Command 实现,通过 ButtonBase 触发命令 作者:webabcd ...

  5. ASP.NET MVC Notes - 01

    inetmgr 进入IIS ViewBag和ViewData在run-time的时候检查错误,View中的用法如下: @*ViewBag传递的是动态对象*@ @foreach (string item ...

  6. java web学习总结(六) -------------------servlet开发(二)

    一.ServletConfig讲解 1.1.配置Servlet初始化参数 在Servlet的配置文件web.xml中,可以使用一个或多个<init-param>标签为servlet配置一些 ...

  7. Code First :使用Entity. Framework编程(6) ----转发 收藏

    Chapter6 Controlling Database Location,Creation Process, and Seed Data 第6章 控制数据库位置,创建过程和种子数据 In prev ...

  8. 用childNodes获取子元素 换行会产生一个子元素

    <div id='div1'> <div id='div2'> <div id='div3'></div> </div> <div c ...

  9. 软件开发流程 Software development process

    软件开发流程(Software development process)即软件设计思路和方法的一般过程,包括设计软件的功能和实现的算法和方法.软件的总体结构设计和模块设计.编程和调试.程序联调和测试以 ...

  10. ajax大全

    简介 对于WEB应用程序:用户浏览器发送请求,服务器接收并处理请求,然后返回结果,往往返回就是字符串(HTML),浏览器将字符串(HTML)渲染并显示浏览器上. 传统的web应用简单的操作需要加载全局 ...