必考知识(下)

3 必考知识(下)

3.1 请谈谈你对浏览器的理解?

【考点映射】

  • 浏览器的功能、组成

【频率】★★★★

【难度】☆

【参考答案】

浏览器的主要功能是将用户选择的 web 资源呈现出来,它需要从服务器请求资源,并将其显示在浏览器窗口中,资源的格式通常是 HTML,也包括 PDF、image 及其他格式

HTML 和 CSS 规范中规定了浏览器解释 html 文档的方式,由 W3C 组织对这些规范进行维护,但各浏览器厂商纷纷开发自己的扩展功能,对规范遵循并不完善,这便导致了严重的兼容性问题

简单来说浏览器可以分为两部分,shell 和 内核。其中 shell 的种类相对比较多,内核则比较少

shell 是指浏览器外壳:例如菜单,工具栏等,主要是提供给用户界面操作,参数设置,是调用内核来实现各种功能的

内核 是浏览器的核心,是基于标记语言显示内容的程序或模块

3.2 请谈谈你对浏览器内核的理解?

【考点映射】

  • 浏览器内核

【频率】★★★★★

【难度】☆

【参考答案】

浏览器内核主要分成两部分:

渲染引擎:其职责就是渲染,即在浏览器窗口中显示所请求的内容。默认情况下,渲染引擎可以显示 html、xml 文档及图片,它也可以借助插件显示其他类型数据,例如使用 PDF 阅读器插件显示 PDF 格式

JS 引擎:解析和执行 javascript 来实现网页的动态效果

起初渲染引擎和 JS 引擎区分并不明确,而后 JS 引擎越来越独立,内核就倾向于只指渲染引擎

目前常见的浏览器内核:

IE 浏览器:Trident 内核,也俗称 IE 内核

Chrome 浏览器:统称为 Chromium 内核或 Chrome 内核,以前是 Webkit 内核,现在是 Blink内核

Firefox 浏览器:Gecko 内核,俗称 Firefox 内核

Safari 浏览器:Webkit 内核

Opera 浏览器:最初是自家公司的 Presto 内核,后来从 Webkit 又转到了 Blink 内核

360浏览器、猎豹浏览器内核:IE + Chrome 双内核

搜狗、遨游、QQ 浏览器内核:Trident(兼容模式)+ Webkit(高速模式)

3.3 请问你了解ajax请求吗?

【考点映射】

  • ajax请求

【频率】★★★★★

【难度】☆

【参考答案】

传统请求方法的缺点:

传统的web请求是用户触发一个http请求服务器,服务器收到后,响应到用户,并返回一个新的页面,每当服务器处理客户端请求时,客户都只能空闲等待,哪怕只是一次很小的交互,都要返回一个完整的HTML页,并且浪费时间和带宽去重新读取整个页面,这导致了用户界面的响应比本地应用慢得多

ajax 是一种用于创建快速***页的技术,通过在后台与服务器进行少量数据交换,可使网页实现异步更新,在不重新加载整个网页的情况下,对网页的某部分进行更新

ajax请求步骤:

a、创建XMLHTTPRequest对象(通过 XMLHttpRequest 可以在不刷新页面的情况下请求特定 URL,获取数据,常用于ajax请求)

b、使用open方法设置和服务器的交互信息

c、设置发送的数据,开始和服务器端交互

d、注册事件

e、更新界面


3.4 请问ajax是如何发请求的?

【考点映射】

  • ajax请求过程/原理

【频率】★★★★★

【难度】☆☆

【参考答案】

get请求:

//一、创建XMLHTTPRequest对象
var ajax = new XMLHttpRequest();
//二、设置请求url参数,(请求的类型,请求的url,可以带参数,动态的传递参数starName到服务端)
ajax.open('get','getStar.php?starName='+name);
//三、发送请求
ajax.send();
//四、注册事件onreadystatechange状态改变就会调用
ajax.onreadystatechange = function () {
    if (ajax.readyState==4 &&ajax.status==200) {
//五、if条件为true,数据请求成功,并且请求的页面是存在的               
    console.log(ajax.responseText);
    }
}

关于if判断语句中的状态值:

status:服务器的Http状态码,若是200,则表示OK,404,表示为未找到

readyState属性有五个状态值:

0:uninitialized:未初始化,已经创建了XMLHttpRequest对象但是未初始化

1:loading:已经开始准备好要发送了

2:loaded,:已经发送,但是还没有收到响应

3:interactive:正在接受响应,但是还没接收完

4:completed:接受响应完毕

post请求:

//一、创建XMLHTTPRequest对象
var ajax = new XMLHttpRequest();
//二、设置请求的类型及url
//post请求一定要添加请求头才行不然会报错

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

前端岗面试求职真题解析 文章被收录于专栏

前端岗位面试求职攻略及真题解析~~

全部评论

相关推荐

Noob1024:一笔传三代,人走笔还在
点赞 评论 收藏
分享
评论
1
收藏
分享
牛客网
牛客企业服务