作者:钻探paz_106 | 来源:互联网 | 2023-07-31 13:04
一、页面从输入URL到页面加载显示完成 下载资源:www.yinxiangit.com简单解答:1.浏览器根据请求的URL交给DNS域名解析,找到真实IP,向服务器发起请求; 2
一、页面从输入 URL 到页面加载显示完成
下载资源:www.yinxiangit.com
简单解答:
1.浏览器根据请求的URL交给DNS域名解析,找到真实IP,向服务器发起请求;
2.服务器交给后台处理完成后返回数据,浏览器接收文件(HTML、JS、CSS、图象等)
3.浏览器对加载到的资源(HTML、JS、CSS等)进行语法解析,建立相应的内部数据结构(如HTML的DOM);
4.载入解析到的资源文件,渲染页面,完成。
详细解答:
1. 浏览器会开启一个线程来处理这个请求,对 URL 分析判断如果是 http 协议就按照 Web 方式来处理;
2.调用浏览器内核中的对应方法,比如 WebView 中的 loadUrl 方法;
3.通过DNS解析获取网址的IP地址,设置 UA 等信息发出第二个GET请求;
进行HTTP协议会话,客户端发送报头(请求报头);
4.进入到web服务器上的 Web Server,如 Apache、Tomcat、Node.JS 等服务器;
5.进入部署好的后端应用,如 PHP、Java、Javascript、Python 等,找到对应的请求处理;
6.处理结束回馈报头,此处如果浏览器访问过,缓存上有对应资源,会与服务器最后修改时间对比,一致则返回304;
7.浏览器开始下载html文档(响应报头,状态码200),同时使用缓存;
文档树建立,根据标记请求所需指定MIME类型的文件(比如css、js),同时设置了COOKIE;
8页面开始渲染DOM,JS根据DOM API操作DOM,执行事件绑定等,页面显示完成。
二、平时如何管理你的项目?
1.先期团队必须确定好全局样式(globe.css),编码模式(utf-8) 等;
2.编写习惯必须一致(例如都是采用继承式的写法,单样式都写成一行);
3.标注样式编写人,各模块都及时标注(标注关键样式调用的地方);
4.页面进行标注(例如 页面 模块 开始和结束);
5.CSS跟HTML 分文件夹并行存放,命名都得统一(例如style.css);
6.JS 分文件夹存放 命名以该JS功能为准的英文翻译。
三、页面重构怎么操作?
网站重构:在不改变外部行为的前提下,简化结构、添加可读性,而在网站前端保持一致的行为。
也就是说是在不改变UI的情况下,对网站进行优化,在扩展的同时保持一致的UI。
对于传统的网站来说重构通常是:
表格(table)布局改为DIV+CSS
使网站前端兼容于现代浏览器(针对于不合规范的CSS、如对IE6有效的)
对于移动平台的优化
针对于SEO进行优化
深层次的网站重构应该考虑的方面
减少代码间的耦合
让代码保持弹性
严格按规范编写代码
设计可扩展的API
代替旧有的框架、语言(如VB)
增强用户体验
通常来说对于速度的优化也包含在重构中
压缩JS、CSS、image等前端资源(通常是由服务器来解决)
程序的性能优化(如数据读写)
采用CDN来加速资源加载
对于JS DOM的优化
HTTP服务器的文件缓存
四、mvvm框架是什么?它和其它框架(jquery)的区别是什么?哪些场景适合?
答:一个model+view+viewModel框架,数据模型model,viewModel连接两个
区别:vue数据驱动,通过数据来显示视图层而不是节点操作。
场景:数据操作比较多的场景,更加便捷
五、React 和 Vue 有什么区别?
Set 和 Map 数据结构()
ES6 提供了新的数据结构 Set 它类似于数组,但是成员的值都是唯一的,没有重复的值。
ES6 提供了 Map 数据结构。它类似于对象,也是键值对的集合,但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键。也就是说,Object 结构提供了“字符串—值”的对应,Map 结构提供了“值—值”的对应,是一种更完善的 Hash 结构实现。
六、WeakMap 和 Map 的区别?
WeakMap 结构与 Map 结构基本类似,唯一的区别是它只接受对象作为键名( null 除外),不接受其他类型的值作为键名,而且键名所指向的对象,不计入垃圾回收机制。
WeakMap 最大的好处是可以避免内存泄漏。一个仅被 WeakMap 作为 key 而引用的对象,会被垃圾回收器回收掉。
WeakMap 拥有和 Map 类似的 set(key, value) 、get(key)、has(key)、delete(key) 和 clear() 方法, 没有任何与迭代有关的属性和方法。
七、重排和重绘
部分渲染树(或者整个渲染树)需要重新分析并且节点尺寸需要重新计算。这被称为重排。注意这里至少会有一次重排-初始化页面布局。
由于节点的几何属性发生改变或者由于样式发生改变,例如改变元素背景色时,屏幕上的部分内容需要更新。这样的更新被称为重绘
八、什么叫优雅降级和渐进增强?
优雅降级:
Web站点在所有新式浏览器中都能正常工作、
如果用户使用的是老式浏览器、
则代码会检查以确认它们是否能正常工作、
由于IE独特的盒模型布局问题、
针对不同版本的IE的hack实践过优雅降级了、
为那些无法支持功能的浏览器增加候选方案、
使之在旧式浏览器上以某种形式降级体验却不至于完全失效。
渐进增强:
从被所有浏览器支持的基本功能开始、
逐步地添加那些只有新式浏览器才支持的功能、
向页面增加无害于基础浏览器的额外样式和功能的、
当浏览器支持时,它们会自动地呈现出来并发挥作用。