说说你对前端开发的认识资料Word下载.docx
《说说你对前端开发的认识资料Word下载.docx》由会员分享,可在线阅读,更多相关《说说你对前端开发的认识资料Word下载.docx(10页珍藏版)》请在冰豆网上搜索。
![说说你对前端开发的认识资料Word下载.docx](https://file1.bdocx.com/fileroot1/2022-10/11/055e75bb-afb4-45c4-87f6-69cc14c13d15/055e75bb-afb4-45c4-87f6-69cc14c13d151.gif)
对于传统的网站来说重构通常是:
表格(table)布局改为DIV+CSS
使网站前端兼容于现代浏览器(针对于不合规范的CSS、如对IE6有效的)
对于移动平台的优化
针对于SEO进行优化
深层次的网站重构应该考虑的方面
减少代码间的耦合
让代码保持弹性
严格按规范编写代码
设计可扩展的API
代替旧有的框架、语言(如VB)
增强用户体验
通常来说对于速度的优化也包含在重构中
压缩JS、CSS、image等前端资源(通常是由服务器来解决)
程序的性能优化(如数据读写)
采用CDN来加速资源加载
对于JSDOM的优化
HTTP服务器的文件缓存
列举IE与其他浏览器不一样的特性?
1、事件不同之处:
触发事件的元素被认为是目标(target)。
而在IE中,目标包含在event对象的srcElement属性;
获取字符代码、如果按键代表一个字符(shift、ctrl、alt除外),IE的keyCode会返回字符代码(Unicode),DOM中按键的代码和字符是分离的,要获取字符代码,需要使用charCode属性;
阻止某个事件的默认行为,IE中阻止某个事件的默认行为,必须将returnValue属性设置为false,Mozilla中,需要调用preventDefault()方法;
停止事件冒泡,IE中阻止事件进一步冒泡,需要设置cancelBubble为true,Mozzilla中,需要调用stopPropagation();
99%的网站都需要被重构是那本书上写的?
应用web标准进行设计(第2版)
什么叫优雅降级和渐进增强?
优雅降级:
Web站点在所有新式浏览器中都能正常工作,如果用户使用的是老式浏览器,则代码会针对旧版本的IE进行降级处理了,使之在旧式浏览器上以某种形式降级体验却不至于完全不能用。
如:
border-shadow
渐进增强:
从被所有浏览器支持的基本功能开始,逐步地添加那些只有新版本浏览器才支持的功能,向页面增加不影响基础浏览器的额外样式和功能的。
当浏览器支持时,它们会自动地呈现出来并发挥作用。
默认使用flash上传,但如果浏览器支持HTML5的文件上传功能,则使用HTML5实现更好的体验;
是否了解公钥加密和私钥加密。
一般情况下是指私钥用于对数据进行签名,公钥用于对签名进行验证;
HTTP网站在浏览器端用公钥加密敏感数据,然后在服务器端再用私钥解密。
WEB应用从服务器主动推送Data到客户端有那些方式?
html5提供的Websocket
不可见的iframe
WebSocket通过Flash
XHR长时间连接
XHRMultipartStreaming
<
script>
标签的长时间连接(可跨域)
对Node的优点和缺点提出了自己的看法?
*(优点)因为Node是基于事件驱动和无阻塞的,所以非常适合处理并发请求,
因此构建在Node上的代理服务器相比其他技术实现(如Ruby)的服务器表现要好得多。
此外,与Node代理服务器交互的客户端代码是由javascript语言编写的,
因此客户端和服务器端都用同一种语言编写,这是非常美妙的事情。
*(缺点)Node是一个相对新的开源项目,所以不太稳定,它总是一直在变,
而且缺少足够多的第三方库支持。
看起来,就像是Ruby/Rails当年的样子。
你有用过哪些前端性能优化的方法?
(1)减少http请求次数:
CSSSprites,JS、CSS源码压缩、图片大小控制合适;
网页Gzip,CDN托管,data缓存,图片服务器。
(2)前端模板JS+数据,减少由于HTML标签导致的带宽浪费,前端用变量保存AJAX请求结果,每次操作本地变量,不用请求,减少请求次数
(3)用innerHTML代替DOM操作,减少DOM操作次数,优化javascript性能。
(4)当需要设置的样式很多时设置className而不是直接操作style。
(5)少用全局变量、缓存DOM节点查找的结果。
减少IO读取操作。
(6)避免使用CSSExpression(css表达式)又称Dynamicproperties(动态属性)。
(7)图片预加载,将样式表放在顶部,将脚本放在底部加上时间戳。
(8)避免在页面的主体布局中使用table,table要等其中的内容完全下载之后才会显示出来,显示比div+css布局慢。
对普通的网站有一个统一的思路,就是尽量向前端优化、减少数据库操作、减少磁盘IO。
向前端优化指的是,在不影响功能和体验的情况下,能在浏览器执行的不要在服务端执行,能在缓存服务器上直接返回的不要到应用服务器,程序能直接取得的结果不要到外部取得,本机内能取得的数据不要到远程取,内存能取到的不要到磁盘取,缓存中有的不要去数据库查询。
减少数据库操作指减少更新次数、缓存结果减少查询次数、将数据库执行的操作尽可能的让你的程序完成(例如join查询),减少磁盘IO指尽量不使用文件系统作为缓存、减少读写文件次数等。
程序优化永远要优化慢的部分,换语言是无法“优化”的。
http状态码有那些?
分别代表是什么意思?
简单版
[
100Continue继续,一般在发送post请求时,已发送了httpheader之后服务端将返回此信息,表示确认,之后发送具体参数信息
200OK正常返回信息
201Created请求成功并且服务器创建了新的资源
202Accepted服务器已接受请求,但尚未处理
301MovedPermanently请求的网页已永久移动到新位置。
302Found临时性重定向。
303SeeOther临时性重定向,且总是使用GET请求新的URI。
304NotModified自从上次请求后,请求的网页未修改过。
400BadRequest服务器无法理解请求的格式,客户端不应当尝试再次使用相同的内容发起请求。
401Unauthorized请求未授权。
403Forbidden禁止访问。
404NotFound找不到如何与URI相匹配的资源。
500InternalServerError最常见的服务器端错误。
503ServiceUnavailable服务器端暂时无法处理请求(可能是过载或维护)。
]
完整版
1**(信息类):
表示接收到请求并且继续处理
100——客户必须继续发出请求
101——客户要求服务器根据请求转换HTTP协议版本
2**(响应成功):
表示动作被成功接收、理解和接受
200——表明该请求被成功地完成,所请求的资源发送回客户端
201——提示知道新文件的URL
202——接受和处理、但处理未完成
203——返回信息不确定或不完整
204——请求收到,但返回信息为空
205——服务器完成了请求,用户代理必须复位当前已经浏览过的文件
206——服务器已经完成了部分用户的GET请求
3**(重定向类):
为了完成指定的动作,必须接受进一步处理
300——请求的资源可在多处得到
301——本网页被永久性转移到另一个URL
302——请求的网页被转移到一个新的地址,但客户访问仍继续通过原始URL地址,重定向,新的URL会在response中的Location中返回,浏览器将会使用新的URL发出新的Request。
303——建议客户访问其他URL或访问方式
304——自从上次请求后,请求的网页未修改过,服务器返回此响应时,不会返回网页内容,代表上次的文档已经被缓存了,还可以继续使用
305——请求的资源必须从服务器指定的地址得到
306——前一版本HTTP中使用的代码,现行版本中不再使用
307——申明请求的资源临时性删除
4**(客户端错误类):
请求包含错误语法或不能正确执行
400——客户端请求有语法错误,不能被服务器所理解
401——请求XX,这个状态代码必须和WWW-Authenticate报头域一起使用
HTTP401.1-未授权:
登录失败
HTTP401.2-未授权:
服务器配置问题导致登录失败
HTTP401.3-ACL禁止访问资源
HTTP401.4-未授权:
授权被筛选器拒绝
HTTP401.5-未授权:
ISAPI或CGI授权失败
402——保留有效ChargeTo头响应
403——禁止访问,服务器收到请求,但是拒绝提供服务
HTTP403.1禁止访问:
禁止可执行访问
HTTP403.2-禁止访问:
禁止读访问
HTTP403.3-禁止访问:
禁止写访问
HTTP403.4-禁止访问:
要求SSL
HTTP403.5-禁止访问:
要求SSL128
HTTP403.6-禁止访问:
IP地址被拒绝
HTTP403.7-禁止访问:
要求客户证书
HTTP403.8-禁止访问:
禁止站点访问
HTTP403.9-禁止访问:
连接的用户过多
HTTP403.10-禁止访问:
配置无效
HTTP403.11-禁止访问:
密码更改
HTTP403.12-禁止访问:
映射器拒绝访问
HTTP403.13-禁止访问:
客户证书已被吊销
HTTP403.15-禁止访问:
客户访问许可过多
HTTP403.16-禁止访问:
客户证书不可信或者无效
HTTP403.17-禁止访问:
客户证书已经到期或者尚未生效
404——一个404错误表明可连接服务器,但服务器无法取得所请求的网页,请求资源不存在。
eg:
输入了错误的URL
405——用户在Request-Line字段定义的方法不允许
406——根据用户发送的Accept拖,请求资源不可访问
407——类似401,用户必须首先在代理服务器上得到授权
408——客户端没有在用户指定的饿时间内完成请求
409——对当前资源状态,请求不能完成
410——服务器上不再有此资源且无进一步的参考地址
411——服务器拒绝用户定义的Content-Length属性请求
412——一个或多个请求头字段在当前请求中错误
413——请求的资源大于服务器允许的大小
414——请求的资源URL长于服务器允许的长度
415——请求资源不支持请求项目格式
416——请求中包含Range请求头字段,在当前请求资源范围内没有range指示值,请求也不包