当前位置: 首页 > Web前端 > CSS

Web前端经典面试题(三)

时间:2023-03-30 15:55:21 CSS

1.什么是Ajax???Ajax一词用于描述一组允许浏览器为用户提供更自然浏览体验的技术。Ajax是“AsynchronousJavaScript+XML的简写”定义Ajax:Ajax不是一种技术。事实上,它是几种蓬勃发展的技术以新颖而强大的方式的结合。Ajax包括:*基于XHTML和CSS标准的表示;*使用文档对象模型进行动态展示和交互;*使用XMLHttpRequest与服务器进行异步通信;*使用JavaScript绑定一切。2、什么是JSONJSON来源于javascript,但应用远不止javascript的json。相当于xml,是比较流行的一种标准格式,是数据的载体。javascriptjson用于javascript程序,可以支持Object引用和函数;ajaxjson只是最简单的字符串和数字,不可能完全支持javascript中的数据类型。与XML相比,JSON更具可读性,更易于肉眼检查。在语法层面,JSON与其他格式的区别在于分隔数据的字符。3、说说如何避免用户多次点击导致的多次请求。当我们访问某些网站时,在输入表单完成后,点击提交按钮提交后,提交按钮会变成灰色,用户无法再次点击,直到页面重新加载或重定向。这样一来,在一定程度上可以防止用户重复提交导致应用程序出现逻辑错误。防止重复点击提交的方法还有很多,比如1>定义flag: 点击触发请求后,flag为false;请求后(或包括请求后的具体业务流程处理),标志为真金额。使用flag来判断用户点击是否有正确的响应。2>卸载并重新加载绑定事件:点击触发请求后,卸载点击事件;请求后(或包括请求后的具体业务流程处理),重新加载绑定事件。3>替换(移除)按钮DOM点击触发请求后,替换(或移除)按钮DOM对象,此时自然没有点击事件;在请求之后(或者包括请求之后的具体业务流程处理),为新的按钮DOM定义点击事件。更多解释参考:http://www.cnblogs.com/jingangguo/archive/2013/05/20/3086925.html4、同步和异步的区别?同步的概念应该来自于操作系统中同步的概念:不同的进程调整顺序(通过阻塞、唤醒等)共同完成某项工作。同步强调顺序性,谁先到;异步没有这样的顺序性。//同步:浏览器访问服务器请求,用户可以看到页面刷新,请求重发。请求完成后,刷新页面,出现新内容,用户看到新内容,进入下一步。//异步:??浏览器访问服务器请求,用户正常操作,浏览器后台发出请求。请求完成后,页面不会刷新,会出现新的内容,用户会看到新的内容。5、异步加载有哪几种方式?(1)defer,只支持IE(2)async:(3)创建一个脚本,插入到DOM中,加载完成后回调。6.27.什么是CORS?对于跨域请求,如何向服务器发送带有凭据(HTTPCookie和HTTP认证信息)的请求?(提示:后续实际工作中可能会用到)跨域请求一直是web编程中的难题。过去,大多数人倾向于使用JSONP来解决这个问题。但是现在,我们可以考虑W3C中的一个新特性——CORS(Cross-OriginResourceSharing)。CORS是现代浏览器支持跨源资源请求的一种方式。解决方法:当你使用XMLHttpRequest发送请求时,浏览器发现请求不符合同源策略,会在请求中添加请求头:Origin,以及后台(php或者其他数据接收方)会进行一系列的处理,如果确认接受请求,会在返回结果中添加响应头:Access-Control-Allow-Origin;浏览器判断对应的header中是否包含Origin的值,如果是,则浏览器处理响应,我们可以得到响应数据,如果不包含浏览器直接拒绝,我们无法得到响应数据此时。更多参考地址:www.cnblogs.com/dojo-lzz/p/4265637.htmlhttp://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是通过HTTPpost机制将表单中的各个字段及其内容放在HTMLHEADER中,发送到ACTION属性所指示的URL地址。用户看不到这个过程;因此:包含机密信息如果没有,建议使用Post数据提交方式;而在增加、修改或删除数据时,推荐使用Post方法。9.request.status的HTTP状态代码一个3位代码,用于指示Web服务器的HTTP响应状态。1、2、3、4、5开头的状态码分别代表什么(温馨提示:404页面表示禁止访问等)1xx(临时响应)表示需要临时响应的状态码,需要请求者继续执行操作。2xx(成功)表示请求已成功处理的状态代码。3xx(重定向)表示需要进一步操作才能完成请求。通常,这些状态代码用于重定向。4xx(BadRequest)这些状态代码表示请求可能出了问题,导致服务器无法处理它。5xx(服务器错误)这些状态代码表示服务器在尝试处理请求时发生内部错误。这些错误可能是服务器本身的错误,而不是请求的错误。十。jQuery和jQueryUI有什么区别?`jQuery`是一个js库,主要提供选择器、属性修改、事件绑定等功能。`jQueryUI`是基于jQuery设计的,利用jQuery的可扩展性的插件。提供一些常用的界面元素,如对话框、拖动行为、调整大小行为等。11.$(document).ready和window.onload有什么区别?$(document).ready对于支持DOMContentLoaded事件的浏览器,将使用该事件。渲染完所有节点后,它就会被执行。可以多次调用。如果不支持,使用onload事件window.onload事件等待所有资源加载完成,比如图片,视频,js脚本等,只能绑定一次,后面绑定的事件覆盖绑定的事件更早。12.在jQuery中,如何防止事件冒泡和浏览器默认行为?e.preventDefault();e.stopPropagation();十三。Node.js的适用场景?高并发、聊天、实时消息推送、服务器做前端资源压缩14.那些操作会导致内存泄漏?内存泄漏是指在您不再拥有或不再需要它之后仍然存在的任何对象。垃圾收集器定期扫描对象并计算引用每个对象的其他对象的数量。如果一个对象的引用计数为0(没有其他对象引用过它),或者对该对象的唯一引用是一个循环,那么该对象的内存就会被回收。//如果setTimeout的第一个参数使用字符串而不是函数,会造成内存泄漏。Closures,consolelogs,loops(当两个对象相互引用并相互保留时会发生循环)15..call()和.apply()的区别?callmethod:语法:call(thisObj,Object)定义:调用一个对象的方法,将当前对象替换为另一个对象。Explanation:call方法可以用来调用一个方法而不是另一个对象。call方法将函数的对象上下文从原始上下文更改为thisObj指定的新对象。如果没有提供thisObj参数,则使用Global对象作为thisObj。apply方法:语法:apply(thisObj,[argArray])定义:应用一个对象的方法,用另一个对象替换当前对象。备注:如果argArray不是有效数组或不是参数对象,将导致TypeError。如果既没有提供argArray也没有提供thisObj,则Global对象将用作thisObj,并且不能传递任何参数。