前端面试知识收集

欧姆龙485通讯示例程序_【精品实验】PLC学习神器与温湿度变送器的通讯 BFH点击蓝字关注我们↑↑↑↑  PLC学习神器提供RS485接口,可支持无协议RS指令、无协议RS2指令、Modbus通讯功能,可通过设置通讯格式改变通讯协议,RS485对应的通讯格式地址是D8400;  本案例以RS485接口与温湿度变送器通讯,通讯格式如下一温湿度变送器的说明书介绍1.1主要技术参数1.2 通讯协议 1、所有通讯回路都应遵照主/从方式。依照主从方式,数据可以在一个主... 阅读详情

块级元素和行内元素

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

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

除了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是推迟执行,推崇依赖就近。

 

【人工智能】架构演进:基于本体论与 LLM Agent 的供应链备件决策闭环实践 本文探讨了如何将本体论(Ontology)与大语言模型(LLM)Agent结合,构建供应链备件管理的智能决策系统。针对LLM在垂直领域存在的幻觉和逻辑缺陷问题,提出通过本体论建立结构化知识框架,形成四层架构:知识建模、动态感知、深度分析和决策闭环。系统利用图数据库实例化领域本体,融合多源数据实现实时感知,结合图谱推理和时序预测进行确定性分析,最终通过工具调用完成决策执行。技术选型推荐Gemini 1.5 Pro、Neo4j和LangChain等工具,实现从自动化到智能化的升级。该架构为工业领域提供了可解释、 阅读详情

相关推荐

银河飞腾FT6678实战指南:OpenMP多核并行编程优化技巧

本文详细介绍了在银河飞腾FT6678多核处理器上使用OpenMP进行并行编程的实战技巧与优化方法。从基础语法到环境配置,再到性能优化的五大核心技巧,包括循环并行化、并行粒度控制、reduction子句使用等,帮助开发者充分发挥FT6678的8核计算能力。通过实际案例展示如何将图像处理算法从200ms优化到28ms,并深入探讨了任务调度、内存访问优化等进阶主题。

weixin_29234423的博客 287

前端开发面试问题及答案整理

说说你对闭包的理解 使用闭包主要是为了设计私有的方法和变量。闭包的优点是可以避免全局变量的污染,缺点是闭包会常驻内存,会增大内存使用量,使用不当很容易造成内存泄露。 闭包有三个特性: 1.函数嵌套函数 2.函数内部可以引用外部的参数和变量 3.参数和变量不会被垃圾回收机制回收 请你谈谈Cookie的弊端 cookie虽然在持久保存客户端数据提供了方便,分担了服务器

飞鸟Blog 5788

littlefs系列:wear leveling

wear leveling的功能是通过block alloctor实现的。littlefs通过两个方法实现磨损均衡: 1) 检测和恢复bad blocks 2)通过dynamic blocks均衡磨损 检测和恢复bad blocks和block alloctor的关系并不紧密,主要依靠文件系统本身来检测坏块并标记。在littlefs中,检测坏块主要是通过写后回读并比较的方式实现的,如果数据不一致则说明是一个坏块。一旦检测到了坏块就要进行恢复。 如果是写入错误,因为数据才RAM中还有备份,因此需.

nstcl的博客 2569

JS核心知识归纳

JS基础 1.数据类型? 6基本数据类型: Undefined, Null, Boolean, Number, String ,Symbol 引用类型: Array Object Date Function 区别: 基本类型值保存在栈空间,我们通过按值来访问的。 引用类型,的值是对象,栈内存中存放地址指向堆内存中的对象。是按引用访问的。栈内存中存放的 只是该对象的访问地址,在堆内存中为这个值分配空间。 1.基本数据类型不可以添加/删除属性和方法; 2.复制的方式不同;引用类型复制的时候,复制的是指针,2个变

ToShy的博客 761

编译CycloneDDS和CycloneDDS-CXX踩过的坑——CMake Error at CMakeLists.txt:227 (find_package):

最近编译CycloneDDS和CycloneDDS-CXX踩了两个坑,花了不少时间。做个简单的记录,免得以后又踩到。注意:CycloneDDS-CXX编译依赖CycloneDDS,因此必须先编译CycloneDDS需要严格按照步骤进行,否则要入坑步骤如下,1先编译CycloneDDS以上步骤完成CycloneDDS的编译和安装,生成的bin include lib等位于install目录下面。

usstmiracle的博客 1900

I-Cache 和 D-Cache

I-Cache 和 D-Cache

liuyuanbin9001 7023

2020 前端VUE面试(杭州)

前两天一个朋友来杭州找工作了,我整理了下他的面试题 先说下他的情况: 19年毕业,差不多一年工作经验,前端。刚开始找了一周,面试寥寥,我让他改成两年工作经验,实习一年工作一年。 不是想骗什么,主要是现在疫情原因,工作不好找,他写了一年工作经验,都没人理他。这个东西也不是简历修改年限公 司就能要他,这还是要看能力,只是让机会更多些。我个人感觉没有什么问题,勿喷。果然改了简历后面试机会就多了起 来...

诚实可靠小郎君 1287

三部对接 sora-2:OpenAI 最新视频模型快速接入指南

本文介绍OpenAI最新视频生成模型Sora-2的接入方案,重点解析其Chat格式调用功能。开发者可通过在提示词中嵌入"横屏/竖屏""时长""清晰度"等要求快速生成视频。文章分三部分:1)基础准备(环境配置与API密钥获取);2)核心调用(提供Python/Java示例代码);3)结果查询与优化建议。Sora-2支持多语言调用,简化了视频生成流程,适用于短视频、广告创意等场景。

2501_93565190的博客 3426

前端-面试知识点收集

1.从输入url到页面渲染发生了什么? https://www.cnblogs.com/daijinxue/p/6640153.html 2.TCP/IP协议 三次握手四次挥手 https://www.360kuai.com/pc/94efc1d0d1620910a?cota=4&kuai_so=1&sign=360_57c3bbd1&refer_scene=so_1 前端面试题帖: http://www.yyyweb.com/5136.html ...

weixin_44021659的博客 162

2026年数字IC设计华为笔试带答案解析

这篇文章是一份数字IC设计工程师笔试的试卷结构和部分题目解析。试卷包含单选题31题(每题2分)、多选题10题(每题4分)和简答/编程题4题(每题7分),总分130分,考试时长120分钟。 摘要重点: 试卷涵盖数字IC设计的关键知识点,包括Verilog语法、时序逻辑、状态机设计、跨时钟域处理等; 题目解析详细说明了各选项的正确性,如非阻塞赋值特性(D错误)、功耗影响因素(C与组合逻辑级数弱相关)等; 包含实际工程问题,如DDR4接口电平(SSTL-1.2)、卡诺图变量排序(格雷码)等; 部分题目考察基础概念

Open 369

C# 的 Dapper 库高级进阶:刨根问底的深度解析

通过今天的探索,我们了解了 Dapper 的一些高级功能,包括如何处理复杂的查询、执行批量操作以及如何优化性能。希望这篇深入浅出的文章能帮助你在实际项目中更好地运用 Dapper!🎈好了,小伙伴们,今天的分享就到这里啦!如果你有任何疑问或者想要分享自己的经验,请在评论区留言。我们下次再见!👋上述示例代码仅供参考,实际使用时请根据项目需求进行适当调整。✨Dapper 官方文档Dapper 性能优化指南Dapper 动态参数使用来同时执行多个查询。利用Execute和Query方法来简化 SQL 调用。

java专栏 813

前端开发笔试面试题收集,知识点,教程

前端面试题 网站网址:https://wiki.aftersoil.xyz/ GitHub网址:https://github.com/Aftersoil/Home/ 这里将收集前端和后端的面试题,并根据自己的理解提供解答,我们将会持续更新和维护该仓库,跟欢迎你和我们以一起来维护????????????。 网站效果图: ...

weixin_44202430的博客 138

用Playwright MCP让AI帮你完成所有浏览器自动化

Playwright MCP(Model Context Protocol)是微软基于 Playwright 框架推出的 AI 浏览器自动化新协议。它通过结构化快照数据和自然语言指令结合大型语言模型(如 GPT),实现无需编码的网页交互。无论你是要测试登录流程、抓取价格数据,还是用 AI 远程控制浏览器,Playwright MCP 都能大幅降低门槛,让“说人话”也能驱动自动化脚本。本篇将从功能介绍、技术架构、使用方法到实际场景,带你全面理解这一自动化革命。

todoitbo的博客 3万+

2019大龄前端如何准备面试?

https://juejin.im/post/5d834e62e51d453b8b5fa69e前言今年毋庸置疑是找工作的寒冬,今年出来找工作的每一个同学 都是值得尊敬的。...

zz_jesse的博客 328

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

2024年Web前端最新Vue源码解析:数据双向绑定(响应式)原理,2024年最新刚从阿里、头条面试回来

基础知识是前端一面必问的,如果你在基础知识这一块翻车了,就算你框架玩的再6,webpack、git、node学习的再好也无济于事,因为对方就不会再给你展示的机会,千万不要因为基础错过了自己心怡的公司。前端的基础知识杂且多,并不是理解就ok了,有些是真的要去记。当然了我们是牛x的前端工程师,每天像背英语单词一样去背知识点就没必要了,只要平时工作中多注意总结,面试前端刷下题目就可以了。开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】})})

2301_82243626的博客 894

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

从若干个方向谈一谈前端面试需要准备哪些东西

今年前端很明显一个变化就是前端面试里除了基础知识 也添加了很多手写算法以及前端递归小程序。下面从若干个方向谈一谈需要准备些什么东西。面试的节奏面试之前要复习自己所有的基础知识。算法比较难...

frontend_frank的博客 1440

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

一次僵硬的前端面试经历

首先,我是提前1个小时根据Boss直聘的导航过去的,到了园区才发现没有发给我具体的位置(哪幢哪层哪号什么的)嗯,公司介绍和面试邀请地址都是这个园区,于是在boos上问了下,大概20分钟后才回复,期间问了门卫,无果。终于进到他们公司之后,拿了我的简历后让我填一张跟简历相差不大的表(表示很无语)填完之后就开始面试了。。。第一面是个HR,问了大概这么几个问题:1.做下自我介绍。2.什么时候毕业的?3.为什么离职?4.了解我们公司嘛5.有什么想问的。

2301_77110865的博客 715

前端开发面试知识点大纲

这里收集总结了一些优质的前端面试题,初学者阅后也要用心钻研其中的原理,重要知识需要系统学习,透彻学习,形成自己的知识链。万不可投机取巧,只求面试过关是错误的! ...

cuandugen9315的博客 403

前端学科面试题 面试宝典

一 HTML 1.H5的新特性有哪些 2.两种实现前端路由的方式 3.websocket 4.webSocket如何兼容低浏览器?(阿里) 2.浏览器渲染原理解析 3.iframe有那些缺点? 4.Label的作用是什么?是怎么用的? 5.HTML5的form如何关闭自动完成功能? 6.如何实现浏览器内多个标签页之间的通信? (阿里) 7.页面可见性(Page Visibility API) 可以...

wy005002的博客 626

开发 面试_前端开发面试知识点大纲

前端知识中的CSS这里收集总结了一些优质的前端面试题,初学者阅后也要用心钻研其中的原理,重要知识需要系统学习,透彻学习,形成自己的知识链。万不可投机取巧,只求面试过关是错误的!前端界新的行业标准, 框架, 库不断在更新和新增,正如赫门在2015深JavaScript大会上《前端服务化之路》主题演讲中说的一句话:“每18至24个月,前端都会难一倍”,这些变化使前端的能力更加丰富、创造的应用也会更加完...

weixin_34790081的博客 99

前端面试几个重要知识点

前端面试几个重要知识点 欢迎一起探讨各自在前端开发中遇到的工程问题 收集的前端面试题和答案

赣州博讯科技工作室的博客 73

面试杂谈

前言其实关于面试一直是一个老生常谈的话题,尤其是前端岗位的面试。个人自己的面试和被面试经验来说,大部分情况下的面试者都喜欢问一些知识收集型的问题,比如:浏览器差异与检测CSS hack如何解决跨域当然不是说这类问题不应该问,如果候选人的项目背景有写解决过类似的问题时;适当追问有多少种不同的解决方案,为什么选择其中某种——能很好的考察候选人在积累知识过程中的深度、广度还有思维模式~但是对于一些初级岗

大转转FE 410

前端怎么使用jsessionid_前端开发面试知识点大纲

前端知识中的CSS这里收集总结了一些优质的前端面试题,初学者阅后也要用心钻研其中的原理,重要知识需要系统学习,透彻学习,形成自己的知识链。万不可投机取巧,只求面试过关是错误的!前端界新的行业标准, 框架, 库不断在更新和新增,正如赫门在2015深JavaScript大会上《前端服务化之路》主题演讲中说的一句话:“每18至24个月,前端都会难一倍”,这些变化使前端的能力更加丰富、创造的应用也会更加完...

weixin_39889597的博客 205

前端面试总结(持续更新)

基础知识是前端一面必问的,如果你在基础知识这一块翻车了,就算你框架玩的再6,webpack、git、node学习的再好也无济于事,因为对方就不会再给你展示的机会,千万不要因为基础错过了自己心怡的公司。前端的基础知识杂且多,并不是理解就ok了,有些是真的要去记。当然了我们是牛x的前端工程师,每天像背英语单词一样去背知识点就没必要了,只要平时工作中多注意总结,面试前端刷下题目就可以了。什么?你问面试题资料在哪里,这不是就在你眼前吗(滑稽。

2401_83916435的博客 872

前端开发面试题

前端开发面试题 前言 只看问题点这里 看全部问题和答案点这里 本文由我收集总结了一些前端面试题,初学者阅后也要用心钻研其中的原理,重要知识需要系统学习、透彻学习,形成自己的知识链。万不可投机取巧,临时抱佛脚只求面试侥幸混过关是错误的!也是不可能的!不可能的!不可能的! 前端还是一个年轻的行业,新的行业标准, 框架, 库都不断在更新和新增,正如赫门在2015深JS大会上的《前端服务化之路》...

weixin_33943836的博客 1008

2024最新Web前端经典面试试题及答案-史上最全前端面试题(含答案)(1)

ajax(异步javascript xml) 能够刷新局部网页数据而不是重新加载整个网页。如何使用ajax?第一步,创建xmlhttprequest对象,var xmlhttp =new XMLHttpRequest();XMLHttpRequest对象用来和服务器交换数据。var xhttp;//现代主流浏览器} else {// 针对浏览器,比如IE5或IE6第二步,使用xmlhttprequest对象的open()和send()方法发送资源请求给服务器。

weixin_57992300的博客 1271
上一篇: 卷积神经网络基本部件
下一篇: Git学习笔记
时间刻沙
博客等级 码龄10年 39粉丝 30原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值