用这个客户端发布博客貌似没有摘要,困惑中。
浏览器是如何得到网页的呢?
让我们把因特网想象成一个邮局,当你要发信给你的朋友,首先你要在一张纸上写下文字,然后信封上写你朋友的地址,把信装入信封。再交给邮局,邮箱分检员会根据邮政编码和地址来寻找你朋友住的位置。如果他住在一个很大的社区,邮局服务人员会将信给前台由社区人员按照公寓分类。
因特网以类似的方式工作,只不过不再是一个个由街道连接的房子或公寓,而是通过路由和线缆连接的一群计算机,每台计算都有一个唯一的地址来告诉网络如何到它那儿。
就如同很多栋公寓楼共享一个地址,计算机也能存在于同一个网络或路由(连接同一wifi),这种情况下,你的计算机和其他的计算机对外ip地址一样,当然通过内部ip(如同公寓号),路由就如同社区人员。
IP代表internet protocol,一个ip地址是一个数字标记符,被每一个参与到网络活动中的设备持有。如计算机、打印机、甚至手机都有ip地址。目前有两种ip地址类型:ipv4和ipv6,今天我们用的最多是ipv4,如192.168.1.10,ipv6看起来FE80:0000:0000:0000:AAAA:0000:00C2:0002。当我们打开浏览器输入http://www.baidu.com,你的浏览器回去询问DNS:baidu.com的地址在哪,如果DNS知道你要寻找的ip地址,会直接响应给你,否则这个请求将被转发到其他DNS直到你要找的ip地址被找到。一旦你要找的ip地址被响应,DNS还会发一条消息给那个地址去请求你要求的网页,每个网页都有一个路径,如访问http://www.baidu.com 和http://www.baidu.com/duty/展示的内容不同。一旦远程服务器发回这个html,我们的浏览器就会呈现它。
无论是什么浏览器,核心工作就是:提取web页并显示给用户。你的浏览器根据html文本将其解析为结构布局和内容,显示给用户之前将内容样式化,这些都是浏览器背后要做的工作。
用Angular,我们不但构造结构,而且会建造用户和web应用之间的交互。官方对AngulaJS的描述为:AngularJS作为一种客户端技术,完全基于JavaScript编写,它配合web技术HTML/CSS/JavaScript让我们的Web开发比以前更快更容易。它是一个框架,主要用于创建单页面应用,AngularJS团队将其称作动态web应用的结构框架,AngularJS处理了用户在现代web开发中常用的高级特性:
- 应用逻辑、数据模型、视图分离
- Ajax 服务
- 依赖注入
- 浏览器历史(书签的前进/后退按钮正常工作)
- 可测试
- 其他
和其他JavaScript框架相比,不必扩展自定义javascript对象和处理DOM,如Jquery,想要给DOM添加一个button,我们需要知道这个元素在哪并插入到合适的位置。
var btn = $("hi");
btn.on(‘click‘, function (evt) { console.log("clicked button!") });
$("#checkoutHolder").append(btn);
虽然这看起来不是很复杂,可是这要求开发人员具备DOM的知识,并强迫我们将处理外部DOM复杂的逻辑放入JavaScript代码中。
AngularJs却赋予了HTML本地MVC的能力,使得构建客户端应用变得迅速并乐在其中。开发人员可以分装部分内容作为应用,并不强迫你完全把整个页面都AngularJS化,这对于已有的程序如果采用了其他JavaScript框架尤其有益。另外,AngularJS压缩后只有9KB小,这一特性对构造原型功能相当有好处。
协议:基于MIT,源代码托管于GitHub,当然你也可以贡献自己的力量来帮助这个框架变得更好。具体详情请参照官方网站。