前端面试知识收集

块级元素和行内元素

行内元素:与其他行内元素并排

不能设置宽高,默认的宽度就是文字的宽度

除了p之外的所有文本级标签(span,a,b,i,u,em)

块级元素:霸占一行,不能与其他任何元素并列。

能接受宽高,如果不设置宽度,那么宽度将默认变为父级的100%

所有的容器级标签(div,h系列,lt,dt,dd),以及p标签

 

什么是闭包以及闭包的优缺点

闭包是定义在一个函数内部的函数。

优点:可以读取函数内部变量以及将变量的值始终保持在内存中不会被自动清除。

缺点:1.由于将函数变量都保存在内存中,内存消耗很大,会造成网页性能问题,并且在IE中可能导致内存泄露

2.闭包可以在父函数外改变父函数内部变量的值。

 

HTML文件里开头的DOCTYPE有什么作用

DOCTYPE是document type(文档类型)的简写,在web设计中用来声明文档类型。它是一条指令,告诉浏览器编写页面所用的标记的版本。

 

cookie和session的区别

1、cookie数据存放在客户的浏览器上,session数据放在服务器上。

2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗
   考虑到安全应当使用session。

3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能
   考虑到减轻服务器性能方面,应当使用cookie

4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。

 

GET和POST两种基本请求方法的区别

  1. GET把参数包含在URL中,POST通过request body传递参数。
  2. GET请求会被浏览器主动cache,而POST不会,除非手动设置。
  3. GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。

 

在以下情况中,请使用 POST 请求:

无法使用缓存文件(更新服务器上的文件或数据库)

向服务器发送大量数据(POST 没有数据量限制)

发送包含未知字符的用户输入时,POST 比 GET 更稳定也更可靠

 

除了GET和POST之外的请求方法:

OPTIONS:这个方法可使服务器传回该资源所支持的所有HTTP请求方法。用'*'来代替资源名称,向Web服务器发送OPTIONS请求,可以测试服务器功能是否正常运作。

HEAD:与GET方法一样,都是向服务器发出指定资源的请求。只不过服务器将不传回资源的本文部分。它的好处在于,使用这个方法可以在不必传输全部内容的情况下,就可以获取其中“关于该资源的信息”(元信息或称元数据)。

PUT:向指定资源位置上传其最新内容。

DELETE:请求服务器删除Request-URI所标识的资源。

TRACE:回显服务器收到的请求,主要用于测试或诊断。

CONNECT:HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。通常用于SSL加密服务器的链接(经由非加密的HTTP代理服务器)。

Javascript中可以利用toString()将数字变成字符串,可以用split()将字符串变成数组

常见的HTTP相应状态码

  • 200:请求被正常处理
  • 204:请求被受理但没有资源可以返回
  • 206:客户端只是请求资源的一部分,服务器只对请求的部分资源执行GET方法,相应报文中通过Content-Range指定范围的资源。
  • 301:永久性重定向
  • 302:临时重定向
  • 303:与302状态码有相似功能,只是它希望客户端在请求一个URI的时候,能通过GET方法重定向到另一个URI上
  • 304:发送附带条件的请求时,条件不满足时返回,与重定向无关
  • 307:临时重定向,与302类似,只是强制要求使用POST方法
  • 400:请求报文语法有误,服务器无法识别
  • 401:请求需要认证
  • 403:请求的对应资源禁止被访问
  • 404:服务器无法找到对应资源
  • 500:服务器内部错误
  • 503:服务器正忙
  • 状态码的类别有:
    1XX(信息性状态码)
    2XX(成功状态码)
    3XX(重定向状态码)
    4XX(认证错误状态码)
    5XX(服务器错误状态码)

 

Ajax与Flash

1.Ajax的优势:1.可搜索性 2.开放性 3.费用 4.易用性 5.易于开发。

2.Flash的优势:1.多媒体处理 2.兼容性 3.矢量图形 4.客户端资源调度

3.Ajax的劣势:1.它可能破坏浏览器的后退功能   2.使用动态页面更新使得用户难于将某个特定的状态保存到收藏夹中 ,不过这些都有相关方法解决。

4.Flash的劣势:1.二进制格式 2.格式私有 3.flash 文件经常会很大,用户第一次使用的时候需要忍耐较长的等待时间  4.性能问题

 

Ajax事件

ajax的事件是:

ajaxComplete(callback)

ajaxError(callback)

ajaxSend(callback)

ajaxStart(callback)

ajaxStop(callback)

ajaxSuccess(callback)

 

label属性for对应的是id

 

typeof null    //"object"

 

在js中,定义了两个同名函数后,后面的函数会覆盖前面定义的函数。

 

 

置换元素

置换元素是指:浏览器根据元素的标签和属性,来决定元素的具体显示内容。

例如:浏览器根据<img>标签的src属性显示图片。根据标签的type属性决定显示输入框还是按钮。html中的<img><input><textarea><select><object>都是置换元素,这些置换元素往往没有实际内容,即是一个空元素。

非置换元素

浏览器中的大多数元素都是不可置换元素,即其内容直接展示给浏览器。

例如<label>标签,<p>标签里的内容会被浏览器直接显示给用户。

 

this有四种情况

1)当在函数调用的时候指向widow

2)当方法调用的时候指向调用对象

3)当用apply和call上下文调用的时候指向传入的第一个参数

4)构造函数调用指向实例对象

 

+是左相关联所以”2”+3+4相当于(“2”+3)+4即为”234”

 

var obj=[ ]声明obj为数组对象;

var obj={ }声明obj为对象;

var obj=/ /声明obj为正则对象

 

:contains选择器,选取包含指定字符串的元素,字符串也可以是文本

 

常见的请求头和响应头

1)请求(客户端->服务端[request])

    GET(请求的方式) /newcoder/hello.html(请求的目标资源) HTTP/1.1(请求采用的协议和版本号)

    Accept: */*(客户端能接收的资源类型)

    Accept-Language: en-us(客户端接收的语言类型)

    Connection: Keep-Alive(维护客户端和服务端的连接关系)

    Host: localhost:8080(连接的目标主机和端口号)

    Referer: http://localhost/links.asp(告诉服务器我来自于哪里)

    User-Agent: Mozilla/4.0(客户端版本号的名字)

    Accept-Encoding: gzip, deflate(客户端能接收的压缩数据的类型)

    If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT(缓存时间) 

    Cookie(客户端暂存服务端的信息)

    Date: Tue, 11 Jul 2000 18:23:51 GMT(客户端请求服务端的时间)

 

 

2)响应(服务端->客户端[response])

    HTTP/1.1(响应采用的协议和版本号) 200(状态码) OK(描述信息)

    Location: http://www.baidu.com(服务端需要客户端访问的页面路径)

    Server:apache tomcat(服务端的Web服务端名)

    Content-Encoding: gzip(服务端能够发送压缩编码类型)

    Content-Length: 80(服务端发送的压缩数据的长度)

    Content-Language: zh-cn(服务端发送的语言类型)

    Content-Type: text/html; charset=GB2312(服务端发送的类型及采用的编码方式)

    Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT(服务端对该资源最后修改的时间)

    Refresh: 1;url=http://www.it315.org(服务端要求客户端1秒钟后,刷新,然后访问指定的页面路径)

    Content-Disposition: attachment; filename=aaa.zip(服务端要求客户端以下载文件的方式打开该文件)

    Transfer-Encoding: chunked(分块传递数据到客户端) 

    Set-Cookie:SS=Q0=5Lb_nQ; path=/search(服务端发送到客户端的暂存数据)

    Expires: -1//3种(服务端禁止客户端缓存页面数据)

    Cache-Control: no-cache(服务端禁止客户端缓存页面数据) 

    Pragma: no-cache(服务端禁止客户端缓存页面数据)  

    Connection: close(1.0)/(1.1)Keep-Alive(维护客户端和服务端的连接关系) 

    Date: Tue, 11 Jul 2000 18:23:51 GMT(服务端响应客户端的时间)

在服务器响应客户端的时候,带上Access-Control-Allow-Origin头信息,解决跨域的一种方法。

 

 

代码回收规则如下:

1.全局变量不会被回收。

2.局部变量会被回收,也就是函数一旦运行完以后,函数内部的东西都会被销毁。

3.只要被另外一个作用域所引用就不会被回收

 

以下几个都会转化为0

Number()

Number(0)

Number('')

Number('0')

Number(false)

Number(null)

Number([])

Number([0])

 

var和function是会提前声明的,而且function是优先于var声明的(如果同时存在的话)

给基本类型数据加属性不报错,但是引用的话返回undefined

 

Array 对象方法

concat() 连接两个或更多的数组,并返回结果。

join() 把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。

pop() 删除并返回数组的最后一个元素。  

shift() 删除并返回数组的第一个元素

push() 向数组的末尾添加一个或更多元素,并返回新的长度。

unshift() 向数组的开头添加一个或更多元素,并返回新的长度。

reverse() 颠倒数组中元素的顺序。

slice() 从某个已有的数组返回选定的元素

sort() 对数组的元素进行排序

splice() 删除元素,并向数组添加新元素。

toSource() 返回该对象的源代码。

toString() 把数组转换为字符串,并返回结果。

toLocaleString() 把数组转换为本地数组,并返回结果。

valueOf() 返回数组对象的原始值

 

浏览器的内核分别是什么?

IE: trident内核

Firefox:gecko内核

Safari:webkit内核

Opera:以前是presto内核,Opera现已改用Google Chrome的Blink内核

Chrome:Blink(基于webkit,Google与Opera Software共同开发)

 

什么叫优雅降级和渐进增强?

渐进增强 progressive enhancement:

针对低版本浏览器进行构建页面,保证最基本的功能,然后再针对高级浏览器进行效果、交互等改进和追加功能达到更好的用户体验。

 

优雅降级 graceful degradation:

一开始就构建完整的功能,然后再针对低版本浏览器进行兼容

 

sessionStorage 、localStorage 和 cookie 之间的区别

 共同点:用于浏览器端存储的缓存数据

不同点:

(1)存储内容是否发送到服务器端:当设置了Cookie后,数据会发送到服务器端,造成一定的宽带浪费;

 web storage,会将数据保存到本地,不会造成宽带浪费;

(2)数据存储大小不同:Cookie数据不能超过4K,适用于会话标识;web storage数据存储可以达到5M;

(3)数据存储的有效期限不同:cookie只在设置了Cookid过期时间之前一直有效,即使关闭窗口或者浏览器;

sessionStorage仅在关闭浏览器之前有效;localStorage,数据存储永久有效;

(4)作用域不同:cookie和localStorage是在同源同窗口中都是共享的;sessionStorage不在不同的浏览器窗口中共享,即使是同一个页面;

HTTP请求

Cookie 通过在客户端 ( 浏览器 ) 记录信息确定用户身份,最大为 4 kb 。

url 参数用的是 get 方法,从服务器上获取数据,大小不能大于 2 kb 。

Session 是服务器端使用的一种记录客户端状态的机制 。

post 是向服务器传送数据,数据量较大。

local Storage 也是 HTML5 的本地存储,将数据保存在客户端中(一般是永久的)。

 

请说出三种减低页面加载时间的方法

压缩css、js文件

合并js、css文件,减少http请求

外部js、css文件放在最底下

减少dom操作,尽可能用变量替代不必要的dom操作

 

Web攻击技术

(1)XSS(Cross-Site Scripting,跨站脚本攻击):指通过存在安全漏洞的Web网站注册用户的浏览器内运行非法的HTML标签或者JavaScript进行的一种攻击。

(2)SQL注入攻击

(3)CSRF(Cross-Site Request Forgeries,跨站点请求伪造):指攻击者通过设置好的陷阱,强制对已完成的认证用户进行非预期的个人信息或设定信息等某些状态更新。

web前端开发,如何提高页面性能优化?

内容方面:

1.减少 HTTP 请求 (Make Fewer HTTP Requests)

2.减少 DOM 元素数量 (Reduce the Number of DOM Elements)

3.使得 Ajax 可缓存 (Make Ajax Cacheable)

针对CSS:

1.把 CSS 放到代码页上端 (Put Stylesheets at the Top)

2.从页面中剥离 JavaScript 与 CSS (Make JavaScript and CSS External)

3.精简 JavaScript 与 CSS (Minify JavaScript and CSS)

4.避免 CSS 表达式 (Avoid CSS Expressions)

针对JavaScript :

1. 脚本放到 HTML 代码页底部 (Put Scripts at the Bottom)

2. 从页面中剥离 JavaScript 与 CSS (Make JavaScript and CSS External)

3. 精简 JavaScript 与 CSS (Minify JavaScript and CSS)

4. 移除重复脚本 (Remove Duplicate Scripts)

面向图片(Image):

1.优化图片

2 不要在 HTML 中使用缩放图片

3 使用恰当的图片格式

4 使用 CSS Sprites 技巧对图片优化

 

前端开发中,如何优化图像?图像格式的区别?

优化图像:

1、不用图片,尽量用css3代替。 比如说要实现修饰效果,如半透明、边框、圆角、阴影、渐变等,在当前主流浏览器中都可以用CSS达成。

2、 使用矢量图SVG替代位图。对于绝大多数图案、图标等,矢量图更小,且可缩放而无需生成多套图。现在主流浏览器都支持SVG了,所以可放心使用!

3.、使用恰当的图片格式。我们常见的图片格式有JPEG、GIF、PNG。

基本上,内容图片多为照片之类的,适用于JPEG。

而修饰图片通常更适合用无损压缩的PNG。

GIF基本上除了GIF动画外不要使用。且动画的话,也更建议用video元素和视频格式,或用SVG动画取代。

4、按照HTTP协议设置合理的缓存。

5、使用字体图标webfont、CSS Sprites等。

6、用CSS或JavaScript实现预加载。

 

 

比较typeof与instanceof?

相同点:JavaScript 中 typeof 和 instanceof 常用来判断一个变量是否为空,或者是什么类型的。

typeof的定义和用法:返回值是一个字符串,用来说明变量的数据类型。

细节:

(1)typeof 一般只能返回如下几个结果:number,boolean,string,function,object,undefined。

(2)typeof 来获取一个变量是否存在,如 if(typeof a!="undefined"){alert("ok")},而不要去使用 if(a) 因为如果 a 不存在(未声明)则会出错。

(3)对于 Array,Null 等特殊对象使用 typeof 一律返回 object,这正是 typeof 的局限性。

Instanceof定义和用法:instanceof 用于判断一个变量是否属于某个对象的实例

 

 

DOM 0级事件处理程序和DOM 2级事件处理程序:

首先,了解一下DOM的分级。
DOM是HTML与XML的应用编程接口(API),DOM将整个页面映射为一个由层次节点组成的文件,有1级、2级、3级共3个级别。
1级DOM
1级DOM,由DOM核心与DOM HTML两个模块组成。
DOM核心能映射以XML为基础的文档结构,允许获取和操作文档的任意部分。
DOM HTML通过添加HTML专用的对象与函数对DOM核心进行了扩展。
2级DOM
鉴于1级DOM仅以映射文档结构为目标,DOM 2级面向更为宽广。通过对原有DOM的扩展,2级DOM通过对象接口增加了:
DOM视图:描述跟踪一个文档的各种视图(使用CSS样式设计文档前后)的接口;
DOM事件:描述事件接口;
DOM样式:描述处理基于CSS样式的接口;
DOM遍历与范围:描述遍历和操作文档树的接口;
3级DOM
3级DOM通过引入统一方式载入和保存文档和文档验证方法对DOM进行进一步扩展
"0级"DOM
需要注意的是并没有标准被称为0级DOM,它仅是DOM历史上一个参考点(0级DOM被认为是在Internet Explorer 4.0 与Netscape Navigator4.0支持的最早的DHTML)

 

什么是BFC

根据W3C对BFC的描述,可以总结出:BFC是一个具有特殊CSS样式的HTML盒子,比如div

标签就经常用来当盒子用。

这些特殊样式如下,下面的样式只要满足一项,就说明这个盒子是BFC

float: left | right

position: fixed | absolute

display: inline-block | table-cell | table-caption | flex | inline-flex

overflow: hidden | scroll | auto

BFC就是页面上的一个隔离的独立容器,容器里面的子元素是不会影响到外面的元素。

BFC的区域不会与其它float的元素区域重叠。

计算BFC的高度时,浮动子元素也参与计算。

 

display,visibility,reflow,repaint之间的关系

display: none和visibility:hidden的区别就是visibility:hidden会保留元素的空间

repaint(重绘) ,repaint发生更改时,元素的外观被改变,且在没有改变布局的情况下发生,如改变outline,visibility,background color,不会影响到dom结构渲染。

reflow(渲染),与repaint区别就是他会影响到dom的结构渲染,同时他会触发repaint,他会改变他本身与所有父辈元素(祖先),这种开销是非常昂贵的,导致性能下降是必然的,页面元素越多效果越明显。

display:none才会产生reflow

visibility:hidden只会出发repaint

 

MVC架构

MVC模型:是一种架构型的模式,本身不引入新功能,只是帮助我们将开发的结构组织的更加合理,使展示与模型分离、流程控制逻辑、业务逻辑调用与展示逻辑分离。 首先让我们了解下MVC(Model-View-Controller)三元组的概念:

Model(模型):数据模型,提供要展示的数据,因此包含数据和行为,可以认为是领域模型或JavaBean组件(包含数据和行为),不过现在一般都分离开来:Value Object(数据) 和 服务层(行为)。也就是模型提供了模型数据查询和模型数据的状态更新等功能,包括数据和业务。

 View(视图):负责进行模型的展示,一般就是我们见到的用户界面,客户想看到的东西。 Controller(控制器):接收用户请求,委托给模型进行处理(状态改变),处理完毕后把返回的模型数据返回给视图,由视图负责展示。 也就是说控制器做了个调度员的工作,。 在标准的MVC中模型能主动推数据给视图进行更新(观察者设计模式,在模型上注册视图,当模型更新时自动更新视图),但在Web开发中模型是无法主动推给视图(无法主动更新用户界面),因为在Web开发是请求-响应模型。 那接下来我们看一下在Web里MVC是什么样子,我们称其为 Web MVC 来区别标准的MVC。

 

CSS中Position属性有四个可选值,它们分别是:static、absolute、fixed、relative。

position:static 无定位

该属性值是所有元素定位的默认情况,在一般情况下,我们不需要特别的去声明它,但有时候遇到继承的情况,我们不愿意见到元素所继承的属性影响本身,从而可以用position:static取消继承,即还原元素定位的默认值。

position:absolute 绝对定位

使用position:absolute,能够很准确的将元素移动到你想要的位置,

position:fixed 相对于窗口的固定定位

这个定位属性值是什么意思呢?元素的定位方式同absolute类似,但它的包含块是视区本身。在屏幕媒体如WEB浏览器中,元素在文档滚动时不会在浏览器视察中移动。例如,它允许框架样式布局。在页式媒体如打印输出中,一个固定元素会出现于第一页的相同位置。这一点可用于生成流动标题或脚注。我们也见过相似的效果,但大都数效果不是通过CSS来实现了,而是应用了JS脚本。

请特别注意,IE6不支持CSS中的position:fixed属性。真的非常遗憾,要不然我们就可以试试这种酷酷的效果了。

position:relative 相对定位

所谓相对定位到底是什么意思呢,是基于哪里的相对呢?我们需要明确一个概念,相对定位是相对于元素默认的位置的定位。既然是相对的,我们就需要设置不同的值来声明定位在哪里,top、bottom、left、right四个数值配合,来明确元素的位置。

 

<hr> 标签在 HTML 页面中创建一条水平线

在不涉及样式的情况下,页面元素是“从上往下”解析的

 

屏幕尺寸标准

超小屏幕(手机)

小屏幕(平板)

中等屏幕(桌面)

大屏幕(桌面)

<768px

>=768

>=992

>=1200

.col-xs-

.col-sm-

.col-md-

.col-lg-

 

当margin-top、padding-top的值是百分比时,分别相对最近父级块级元素的width,相对最近父级块级元素的width

 

浏览器内核

Wekbit是一个开源的Web浏览器引擎,也就是浏览器的内核。Apple的Safari, Google的Chrome, Nokia S60平台的默认浏览器,Apple手机的默认浏览器,Android手机的默认浏览器均采用的Webkit作为器浏览器内核。Webkit的采用程度由 此可见一斑,理所当然的成为了当今主流的三大浏览器内核之一。另外两个分别是Gecko和Trident,大名鼎鼎的Firefox便是使用的Gecko 内核,而微软的IE系列则使用的是Trident内核。

另外,搜狗浏览器是双核的,双核并不是指一个页面由2个内核同时处理,而是所有网页(通常是标准通用标记语言的应用超文本标记语言)由webkit内核处理,只有银行网站用IE内核

 

HTML5中常用的新特性:

canvas元素:用于定义图形(图表等),只是图形容器,必须使用脚本来绘制图形。

audio:用于音频播放。

video:用于视频播放。

article:规定独立的自包含内容。

header:定义文档的页眉,介绍相关信息。

section:定义文档中的节。

footer:定义文档的页脚,通常有文档的作者、版权信息、联系方式等。

nav:定义导航链接。

表单控件:

calender

date

time

email

url

search

 

 

callee可以引用当前正在执行的函数。

 

异步任务,同步任务

所有任务可以分成两种,一种是同步任务(synchronous),另一种是异步任务(asynchronous)。同步任务指的是,在主线程上排队执行的任务,只有前一个任务执行完毕,才能执行后一个任务;异步任务指的是,不进入主线程、而进入"任务队列"(task queue)的任务,只有"任务队列"通知主线程,某个异步任务可以执行了,该任务才会进入主线程执行。

异步执行的运行机制如下:

(1)所有同步任务都在主线程上执行,形成一个执行栈(execution context stack)。

(2)主线程之外,还存在一个"任务队列"(task queue)。只要异步任务有了运行结果,就在"任务队列"之中放置一个事件。

(3)一旦"执行栈"中的所有同步任务执行完毕,系统就会读取"任务队列",看看里面有哪些事件。那些对应的异步任务,于是结束等待状态,进入执行栈,开始执行。

(4)主线程不断重复上面的第三步。

 

 

div水平垂直居中六种方法

  1. 绝对定位方法:不确定当前div的宽度和高度,采用transform:translate(-50%,-50%);当前div的父级添加相对定位(position:relative;)
  2. 绝对定位方法:确定当前div的宽度,margin值为当前div宽度一半的负值(position:absolute)
  3. 绝对定位方法:绝对定位下top left right bottom都设置为0(position:absolute)
  4. flex布局方法:当前div的父级添加flex css样式
  5. table-cell实现水平垂直居中;table-cell middle center组合使用

eg:  display: table-cell;

    vertical-align: middle;

    text-align: center;

  1. 绝对定位:calc()函数动态计算实现水平垂直居中

eg: left:calc((400px - 200px)/2);

     top:calc((160px - 50px)/2);

 

 

理解URI和URL的区别,我们引入URN这个概念。

URI = Universal Resource Identifier 统一资源标志符
URL = Universal Resource Locator 统一资源定位符
URN = Universal Resource Name 统一资源名称

 

 

当函数被创建,就有了作用域,当函数被调用就有了作用域链,当函数被继承就有了原型链,当需要获取作用域链或原型链上的变量或值时,就有了闭包

 

继承的几种方法(以a,b两个类为例)

  1. 原型链:b.prototype = new a();
  2. 借用构造函数function b(){ a.call(this);//继承了a}
  3. 组合继承b.prototype = new a(); b.prototype.constructor = a;function b(){a.call(this);}

 

变量提升,就是把变量提升到函数的顶部,需要注意的是,变量提升只是提升变量的声明,不会把变量的值也提升上来。

函数提升就是把函数提升到前面。只会把函数声明提升到函数顶部,不会把函数的表达式提升上去。

 

一个页面从输入 URL 到页面加载显示完成,这个过程中都发生了什么?

    分为4个步骤:

    (1),当发送一个URL请求时,不管这个URL是Web页面的URL还是Web页面上每个资源的URL,浏览器都会开启一个线程来处理这个请求,同时在远程DNS服务器上启动一个DNS查询。这能使浏览器获得请求对应的IP地址。

    (2), 浏览器与远程Web服务器通过TCP三次握手协商来建立一个TCP/IP连接。该握手包括一个同步报文,一个同步-应答报文和一个应答报文,这三个报文在 浏览器和服务器之间传递。该握手首先由客户端尝试建立起通信,而后服务器应答并接受客户端的请求,最后由客户端发出该请求已经被接受的报文。

    (3),一旦TCP/IP连接建立,浏览器会通过该连接向远程服务器发送HTTP的GET请求。远程服务器找到资源并使用HTTP响应返回该资源,值为200的HTTP响应状态表示一个正确的响应。

    (4),此时,Web服务器提供资源服务,客户端开始下载资源。

 

同源策略是一种安全协议,指一段脚本只能读取来自同一来源的窗口和文档的属性。这里的同源策略指的是:协议,域名,端口相同。

 

页面重构怎么操作?

编写 CSS、让页面结构更合理化,提升用户体验,实现良好的页面效果和提升性能。

 

JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。

JSONP用来实现跨域传输数据。

AMD

AMD 即Asynchronous Module Definition,中文名是异步模块定义的意思

AMD是提前执行,推崇依赖前置。

CMD

CMD 即Common Module Definition通用模块定义,

CMD是推迟执行,推崇依赖就近。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值