资讯专栏INFORMATION COLUMN

Web前端经典面试试题(三)

JackJiang / 3423人阅读

摘要:包含基于和标准的表示使用进行动态显示和交互使用与服务器进行异步通信使用绑定一切。重定向表示要完成请求,需要进一步操作。方法可将一个函数的对象上下文从初始的上下文改变为由指定的新对象。

一. 什么是Ajax???
术语Ajax用来描述一组技术,它使浏览器可以为用户提供更为自然的浏览体验。
Ajax它是“Asynchronous JavaScript + XML的简写”

定义Ajax:

    Ajax不是一种技术。实际上,它由几种蓬勃发展的技术以新的强大方式组合而成。Ajax包含:
    * 基于XHTML和CSS标准的表示;
    * 使用Document Object Model进行动态显示和交互;
    * 使用XMLHttpRequest与服务器进行异步通信;
    * 使用JavaScript绑定一切。

二. 什么是JSON
JSON来自于javascript,但是应用上面远远不止是javascript的json,它相当于xml,是一种比较流行的标准格式,是数据的载体
javascript json 是用于javascript程序的,它可以支持对象引用以及函数;ajax json只是最简单的字符串和数字,它不可能完全支持javascript里面的数据类型。
相对于XML,JSON更加易读、更便于肉眼检查。在语法的层面上,JSON与其他格式的区别是在于分隔数据的字符

三.浅谈一下如何避免用户多次点击造成的多次请求
我们在访问有的网站,输入表单完成以后,单击提交按钮进行提交以后,提交按钮就会变为灰色,用户不能再单击第二次,直到重新加载页面或者跳转。这样,可以一定程度上防止用户重复提交导致应用程序上逻辑错误。
   还有很多其他的方式进行防止重复点击提交,如
1> 定义标志位:
 点击触发请求后,标志位为false量;请求(或者包括请求后具体的业务流程处理)后,标志位为true量。通过标志位来判断用户点击是否具备应有的响应。
2> 卸载及重载绑定事件:
   点击触发请求后,卸载点击事件;请求(或者包括请求后具体的业务流程处理)后,重新载入绑定事件。
3> 替换(移除)按钮DOM
   点击触发请求后,将按钮DOM对象替换掉(或者将之移除),自然而然此时不在具备点击事件;请求(或者包括请求后具体的业务流程处理)后,给新的按钮DOM定义点击事件。

更多讲解参考:http://www.cnblogs.com/jinguangguo/archive/2013/05/20/3086925.html

四.同步和异步的区别?
同步的概念应该是来自于操作系统中关于同步的概念:
不同进程为协同完成某项工作而在先后次序上调整(通过阻塞,唤醒等方式)。同步强调的是顺序性,谁先谁后;异步则不存在这种顺序性。
//
同步:浏览器访问服务器请求,用户看得到页面刷新,重新发请求,等请求完,页面刷新,新内容出现,用户看到新内容,进行下一步操作。
//
异步:浏览器访问服务器请求,用户正常操作,浏览器后端进行请求。等请求完,页面不刷新,新内容也会出现,用户看到新内容。

五.异步加载的方式有哪些?
(1)defer,只支持 IE
(2)async:
(3)创建 script,插入到 DOM 中,加载完毕后 callBack
六.27. CORS是什么?对于跨域请求,如何将附带凭证(HTTP Cookie及HTTP认证信息)的请求发送至服务器?(提示:后续真实工作中可能会用到)
跨域请求一直是网页编程中的一个难题,在过去,绝大多数人都倾向于使用JSONP来解决这一问题。不过现在,我们可以考虑一下W3C中一项新的特性——CORS(Cross-Origin Resource Sharing)了。CORS是现代浏览器支持跨域资源请求的一种方式。    

解决方法:        
当你使用XMLHttpRequest发送请求时,浏览器发现该请求不符合同源策略,会给该请求加一个请求头:Origin,后台(php或者其它接收数据方)进行一系列处理,如果确定接受请求则在返回结果中加入一个响应头:Access-Control-Allow-Origin;浏览器判断该相应头中是否包含Origin的值,如果有则浏览器会处理响应,我们就可以拿到响应数据,如果不包含浏览器直接驳回,这时我们无法拿到响应数据。

更多参考地址:www.cnblogs.com/dojo-lzz/p/4265637.html
        http://www.cnblogs.com/rainman/archive/2011/02/20/1959325.html
七. 一次完整的HTTP事务是怎样一个过程?
a.域名解析
b.发起TCP的三次握手
c.建立TCP连接后发起http请求
d.服务器端响应http请求,浏览器得到html码
e.浏览器解析html代码,并请求html代码中的资源
f.浏览器对页面进行渲染并呈现给客户

更多详细参考地址:http://www.360doc.com/content/14/0725/20/1073512_397054861.shtml
八. get与post两种方式的优缺点。
get:
    get是从服务器上获取数据,post是向服务器传送数据;
    get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB;
    get安全性非常低,post安全性较高。但是执行效率却比Post方法好;
    get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到;
    在做数据查询时,建议用Get方式;

post:
    post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址,用户看不到这个过程;
    所以:包含机密信息的话,建议用Post数据提交方式;而在做数据添加、修改或删除时,建议用Post方式。
九.对于request.status的http状态码 用于表示网页服务器HTTP响应状态的3位数字代码。1,2,3,4,5开头的状态码分别代表什么(提示:404页面表示禁止访问等)
1xx(临时响应)表示临时响应并需要请求者继续执行操作的状态代码。
2xx (成功)表示成功处理了请求的状态代码。
3xx (重定向) 表示要完成请求,需要进一步操作。 通常,这些状态代码用来重定向。
4xx(请求错误) 这些状态代码表示请求可能出错,妨碍了服务器的处理。
5xx(服务器错误)这些状态代码表示服务器在尝试处理请求时发生内部错误。 这些错误可能是服务器本身的错误,而不是请求出错。
十.jQuery与jQuery UI有啥区别?
`jQuery`是一个js库,主要提供的功能是选择器,属性修改和事件绑定等等。
`jQuery UI`则是在jQuery的基础上,利用jQuery的扩展性,设计的插件。提供了一些常用的界面元素,诸如对话框、拖动行为、改变大小行为等等
十一.$(document).ready与window.onload有何区别?
$(document).ready 对于支持DOMContentLoaded事件的浏览器,会使用该事件,所有的节点渲染完毕,就执行,可以调用多次,不支持的就使用 onload事件
window.onload事件要等到所有的资源加载完毕,如图片,视频,js脚本等,只能绑定一次,后面绑定的覆盖前面所绑定的事件
十二.jQuery中,如何阻止事件冒泡和浏览器默认行为?
e.preventDefault();
e.stopPropagation();
十三. Node.js的适用场景?
高并发、聊天、实时消息推送、服务器做前端资源压缩
十四. 那些操作会造成内存泄漏?
内存泄漏是指任何对象在您不再拥有或需要它之后任然存在。
垃圾回收器定期扫描对象,并计算引用了每个对象的其他对象的数量,如果一个对象的引用数量为0(没有其他对象引用过该对象),或对该对象的惟一引用是循环的,那么该对象的内存即可回收。
//
setTimeout 的第一个参数使用字符串而非函数的话,会引发内存泄漏。
闭包、控制台日志、循环(在两个对象彼此引用且彼此保留时,就会产生一个循环)
十五.call() 和 .apply() 的区别?
call方法: 
    语法:call(thisObj,Object)
    定义:调用一个对象的一个方法,以另一个对象替换当前对象。
    说明:
    call 方法可以用来代替另一个对象调用一个方法。call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象。 
    如果没有提供 thisObj 参数,那么 Global 对象被用作 thisObj。 

apply方法: 
    语法:apply(thisObj,[argArray])
    定义:应用某一对象的一个方法,用另一个对象替换当前对象。 
    说明: 
    如果 argArray 不是一个有效的数组或者不是 arguments 对象,那么将导致一个 TypeError。 
    如果没有提供 argArray 和 thisObj 任何一个参数,那么 Global 对象将被用作 thisObj, 并且无法被传递任何参数。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/114097.html

相关文章

  • Web前端经典面试试题(一)

    摘要:本篇收录了一些面试中经常会遇到的经典面试题,并且都给出了我在网上收集的答案。网页的行为层负责回答内容应该如何对事件做出反应这一问题。 本篇收录了一些面试中经常会遇到的经典面试题,并且都给出了我在网上收集的答案。眼看新的一年马上就要开始了,相信很多的前端开发者会有一些跳槽的悸动,通过对本篇知识的整理以及经验的总结,希望能帮到更多的前端面试者。(如有错误或更好的答案,欢迎指正,水平有限,望...

    princekin 评论0 收藏0
  • Web前端经典面试试题(一)

    摘要:本篇收录了一些面试中经常会遇到的经典面试题,并且都给出了我在网上收集的答案。网页的行为层负责回答内容应该如何对事件做出反应这一问题。 本篇收录了一些面试中经常会遇到的经典面试题,并且都给出了我在网上收集的答案。眼看新的一年马上就要开始了,相信很多的前端开发者会有一些跳槽的悸动,通过对本篇知识的整理以及经验的总结,希望能帮到更多的前端面试者。(如有错误或更好的答案,欢迎指正,水平有限,望...

    Batkid 评论0 收藏0
  • Web前端经典面试试题(一)

    摘要:本篇收录了一些面试中经常会遇到的经典面试题,并且都给出了我在网上收集的答案。网页的行为层负责回答内容应该如何对事件做出反应这一问题。 本篇收录了一些面试中经常会遇到的经典面试题,并且都给出了我在网上收集的答案。眼看新的一年马上就要开始了,相信很多的前端开发者会有一些跳槽的悸动,通过对本篇知识的整理以及经验的总结,希望能帮到更多的前端面试者。(如有错误或更好的答案,欢迎指正,水平有限,望...

    chanthuang 评论0 收藏0
  • Web前端经典面试试题(一)

    摘要:本篇收录了一些面试中经常会遇到的经典面试题,并且都给出了我在网上收集的答案。网页的行为层负责回答内容应该如何对事件做出反应这一问题。 本篇收录了一些面试中经常会遇到的经典面试题,并且都给出了我在网上收集的答案。眼看新的一年马上就要开始了,相信很多的前端开发者会有一些跳槽的悸动,通过对本篇知识的整理以及经验的总结,希望能帮到更多的前端面试者。(如有错误或更好的答案,欢迎指正,水平有限,望...

    xuxueli 评论0 收藏0
  • Web前端经典面试试题

    摘要:包含基于和标准的表示使用进行动态显示和交互使用与服务器进行异步通信使用绑定一切。重定向表示要完成请求,需要进一步操作。方法可将一个函数的对象上下文从初始的上下文改变为由指定的新对象。 一. 什么是Ajax??? 术语Ajax用来描述一组技术,它使浏览器可以为用户提供更为自然的浏览体验。 Ajax它是Asynchronous JavaScript + XML的简写 定义Ajax: ...

    DrizzleX 评论0 收藏0

发表评论

0条评论

JackJiang

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<