你遇到过比较难的技术问题是什么?你是如何解决的?
是否知道关于设计模式中的Singleton,Factory,Strategy,Decrator?
常使用的库有哪些?常使用的前端开发工具有哪些?开发过什么应用或组件?
页面重构怎么操作?
网站重构:在不改变外部行为的前提下,简化结构、添加可读性,而在网站前端保持一致的行为。也就是说在不改变UI的情况下,对网站进行优化,在扩展的同时保持一致的UI。//传统网站的重构通常是:表格(table)布局改为div+css使网站前端兼容于现代浏览器(针对于不合规范的css)对于移动平台的优化针对SEO进行优化//深层次的网站重构应该考虑的方面:减少代码间的耦合让代码保持弹性严格按规范编写代码设计可扩展的API代替旧有的框架、语言(如VB)增强用户体验//通常来说对于速度的优化也包含在重构中压缩js、css、image等前端资源(通常由服务器来解决)程序的性能优化(如数据读写)采用CDN来加速资源加载对于js、DOM的优化HTTP服务器的文件缓存
列举IE与其他浏览器不一样的特性
触发事件的元素被认为是目标(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不可见的iframeWebSocket通过FlashXHR长时间连接XHRMultipartStreamingscript标签的长时间连接(可跨域)
对Node的优点和缺点提出自己的看法?
优点:因为Node是基于事件驱动和无阻塞的,所以非常适合处理并发请求,因此构建在Node上的代理服务器相比其他技术实现(如Ruby)的服务器表现要好得多。此外,与Node代理服务器交互的客户端代码是由JavaScript语言编写的,因此客户端和服务器端都用同一种语言编写,这是非常美妙的事情。//缺点:Node是一个相对新的开源项目,所以不太稳定,它总是一直在变,而且缺少足够多的第三方库支持。看起来,就像是Ruby/Rails当年的样子。
你用过哪些前端性能优化的方法?
(1)减少 HTTP.2-未授权:服务器配置问题导致登录失败 HTTP.3-ACL禁止访问资源 HTTP.4-未授权:授权被筛选器拒绝HTTP.5-未授权:ISAPI或CGI授权失败——保留有效ChargeTo头响应——禁止访问,服务器收到请求,但是拒绝提供服务HTTP.1禁止访问:禁止可执行访问 HTTP.2-禁止访问:禁止读访问 HTTP.3-禁止访问:禁止写访问 HTTP.4-禁止访问:要求SSL HTTP.5-禁止访问:要求SSL HTTP.6-禁止访问:IP地址被拒绝 HTTP.7-禁止访问:要求客户证书 HTTP.8-禁止访问:禁止站点访问 HTTP.9-禁止访问:连接的用户过多 HTTP.10-禁止访问:配置无效 HTTP.11-禁止访问:密码更改 HTTP.12-禁止访问:映射器拒绝访问 HTTP.13-禁止访问:客户证书已被吊销 HTTP.15-禁止访问:客户访问许可过多 HTTP.16-禁止访问:客户证书不可信或者无效HTTP.17-禁止访问:客户证书已经到期或者尚未生效——一个错误表明可连接服务器,但服务器无法取得所请求的网页,请求资源不存在。eg:输入了错误的URL——用户在Request-Line字段定义的方法不允许——根据用户发送的Accept拖,请求资源不可访问——类似,用户必须首先在代理服务器上得到授权——客户端没有在用户指定的饿时间内完成请求——对当前资源状态,请求不能完成——服务器上不再有此资源且无进一步的参考地址——服务器拒绝用户定义的Content-Length属性请求——一个或多个请求头字段在当前请求中错误——请求的资源大于服务器允许的大小——请求的资源URL长于服务器允许的长度——请求资源不支持请求项目格式——请求中包含Range请求头字段,在当前请求资源范围内没有range指示值,请求也不包含If-Range请求头字段——服务器不满足请求Expect头字段指定的期望值,如果是代理服务器,可能是下一级服务器不能满足请求长。//5**(服务端错误类):服务器不能正确执行一个正确的请求HTTP-服务器遇到错误,无法完成请求 HTTP.-内部服务器错误-ASP错误 HTTP-11服务器关闭 HTTP-12应用程序重新启动 HTTP-13-服务器太忙 HTTP-14-应用程序无效 HTTP-15-不允许请求global.asa Error-未实现HTTP-网关错误HTTP:由于超载或停机维护,服务器目前无法使用,一段时间后可能恢复正常
一个页面从输入URL到页面加载显示完成,这个过程中都发生了什么?(流程说的越详细越好)
注:这道题胜在区分度高,知识点覆盖广,再不懂的人也能答出一些。高手可以根据自己擅长的领域自由发挥,从URL规范、HTTP协议、DNS、CDN、数据查询、浏览器流式解析、CSS规则构建、layout、paint、onload/domready、JS执行、JSAPI绑定等等;//详细版:(1)浏览器会开启一个线程来处理这个请求,对URL分析判断,如果是怎么样治疗白癜风北京治疗白癜风术大概多少钱啊