理论整理(四)
黑夜无论多么漫长,白昼总会到来。。。。。。
1、Git 和 SVN 之间的区别?
1.GIT是分布式的,SVN不是分布式; (最核心的区别)
2.GIT把内容按元数据方式存储,而SVN是按文件;
3.GIT分支和SVN的分支不同;
4.GIT没有一个全局的版本号,而SVN有;
5.GIT的内容完整性要优于SVN;
2、JQuery的功能和作用?
jQuery是一个快速、简洁的JavaScript框架,
核心特性:
1.具有独特的链式语法和短小清晰的多功能接口
2.具有高效灵活的css选择器,并且可对CSS选择器进行扩展
3.拥有便捷的插件扩展机制和丰富的插件
4.兼容各种主流浏览器,如IE 6.0+、FF 1.5+、Safari 2.0+、Opera 9.0+等
作用:
1.取得页面中的元素,操作页面对象,修改页面外观,改变页面的内容
3.优化javascript的事件机制
4.响应用户的页面操作,为页面添加动画效果
5.无需刷新页面即可从服务器获取信息,优化ajax
优势:
1.轻量级
2.出色的浏览器兼容
3.出色的dom操作
4.链式操作方式
5.隐式迭代集合(可以对选择对象的集合自动的迭代不需要用for in循环)
6.行为层与结构的分离 (如想对dom添加事件只需在部分声明某个元素的某种事件就可以了)
7.支持扩展
8.完善的学习资源
9.开源
3、从输入URL到页面加载完成的过程?
1.输入地址
2.浏览器查找域名的 IP
地址
3.这一步包括 DNS
具体的查找过程,包括:浏览器缓存->系统缓存->路由器缓存...
4.浏览器向 web
服务器发送一个 HTTP
请求
5.服务器的永久重定向响应(从 http://example.com
到 http://www.example.com
)
6.浏览器跟踪重定向地址
7.服务器处理请求
8.服务器返回一个 HTTP
响应
9.浏览器显示 HTML
10.浏览器发送请求获取嵌入在 HTML
中的资源(如图片、音频、视频、CSS
、JS
等等)
11.浏览器发送异步请求
4、AJAX工作原理及其优缺点?
1.什么是AJAX?
AJAX全称为“Asynchronous JavaScript and XML”(异步JavaScript和XML),是一种创建交互式网页应用的网页开发技术。它使用:
使用XHTML+CSS来标准化呈现;
使用XML和XSLT进行数据交换及相关操作;
使用XMLHttpRequest对象与Web服务器进行异步数据通信;
使用Javascript操作Document Object Model进行动态显示及交互;
使用JavaScript绑定和处理所有数据。
2.AJAX的优缺点
(1).AJAX的优点
1、异步与服务器通信,减轻服务器的负担。因为Ajax的根本理念是“按需取数据”,所以最大可能在减少了冗余请求和响影对服务器造成的负担;
2、无刷新更新数据,减少用户等待时间,带来非常好的用户体验;
3、前端和后端负载平衡,利于客户端闲置的处理能力来处理,减轻服务器和带宽的负担,节约空间和带宽租用成本;
4、Ajax使WEB中的界面与应用分离(也可以说是数据与呈现分离);
5、.基于标准被广泛支持,不需要下载浏览器插件或者小程序
(2).AJAX的缺点
1、AJAX干掉了Back和History功能,即对浏览器机制的破坏。
2、AJAX的安全问题。Ajax技术就如同对企业数据建立了一个直接通道。这使得开发者在不经意间会暴露比以前更多的数据和服务器逻辑。
3、对搜索引擎支持较弱。如果使用不当,AJAX会增大网络数据的流量,从而降低整个系统的性能。
4、破坏程序的异常处理机制。
5、违背URL和资源定位的初衷。
6、AJAX不能很好支持移动设备。
7、编写复杂、容易出错 ;冗余代码比较多,太多客户端代码造成开发上的成本,破坏了Web的原有标准。
3.AJAX注意点及适用和不适用场景
(1).注意点
Ajax开发时,网络延迟——即用户发出请求到服务器发出响应之间的间隔——需要慎重考虑。不给予用户明确的回应,没有恰当的预读数据,或者对XMLHttpRequest的不恰当处理,都会使用户感到延迟,这是用户不希望看到的,也是他们无法理解的。通常的解决方案是,使用一个可视化的组件来告诉用户系统正在进行后台操作并且正在读取数据和内容。
(2).Ajax适用场景
<1>.表单驱动的交互
<2>.深层次的树的导航
<3>.快速的用户与用户间的交流响应
<4>.类似投票、yes/no等无关痛痒的场景
<5>.对数据进行过滤和操纵相关数据的场景
<6>.普通的文本输入提示和自动完成的场景
(3).Ajax不适用场景
<1>.部分简单的表单
<2>.搜索
<3>.基本的导航
<4>.替换大量的文本
<5>.对呈现的操纵
5.AngularJs的特性?
1. 良好的应用程序结构(mvc)
2. 双向数据绑定
3 .指令
4. HTML 模板
5 .依赖注入
6.prototype和_proto_的关系?
7.浅谈Node?
8.浅谈网络安全?
9.字符串substr/substring/slice有什么区别?