google并不是你用多少就发给你多少,而是使用了gzip压缩,也就是说该文件在google上使用gzip算法进行了压缩,这样传输起来就很小了,到了浏览器端,浏览器识别到gzip压缩标记就会解压缩这个文件然后运行。
至于从缓存中得到也是一个服务器端的设计,在你请求代码的时候会发送请求的代码文件名和相关参数,如本地文件版本,最后修改时间等,如果这个信息和服务器端的信息匹配,那么服务器端就会返回304(表示该文件没有变化,可以继续使用本地缓存中的版本)
这个是随互联网的发展而发展的,n年前对于前段来讲呈现给用户的都是静态页面,asp等后台技术承担了几乎所有逻辑运算与处理的能力,那是个用拨号上网的年代,一个网页载入10几秒很平常,那时候的js多半用来做弹窗,警告,以及华而不实的小动画(鼠标跟随,雪花等 ),备受诟病, 后来随互联网的发展,人们发现所有东西交给后台处理不仅反应慢同时服务器压力很大,于是当年的浏览器厂商前驱netscape开始大力支持js,随后ie也开始做js的支持,表单验证等常用行为开始转向前段由js完成,服务器在负载与时间响应上开始得到解放,人们也尝到了甜头,不过js真正流行是随着web2.0开始的,web app概念越来越流行,网站越来越复杂,需要js完成的任务越来越多,与此同时相关标准(w3c)的出台也推动了这门技术的推广与发展。从js的发展史可以看出js的诞生彻彻底底就是为互联网技术而生的,所以js的流行根本动力源自于互联网技术的兴盛,github上托管的开源代码量js长久居于榜首,现在js越来越复杂能做的事情越来越多,现如今html5的热炒和流行让js地位更加稳固,我们在开发后台的时候你有很多语言可以选择(aps,.net,java,c,c#...),但是前端除了js几乎没有第二, 不过相较于c等低级语言他还很弱,限制太多,这主要是js运行的平台(浏览器)与接触的对象(直接面对用户 )和相关安全问题有关, 未来js的发展或许会在这方面突破,发展成为一门更加复杂的编译型语言,这依赖于标准的建立,市场的需求以及平台的支持