前端'基础'

这里会贴一下...前端面试常见的一些问题的自己的总结,背 api 的就不放了,找的是那种可能要讲一小段的那种。

浏览器地址栏输入 URL 后发生了什么

首先 URL 由 协议 + 域名 + 端口 ++ 路径 + 查询参数 + 锚点 组成。

  • 网络传输
    输入 URL 后,浏览器通过 DNS 解析域名,找到对应的服务器 IP 地址,建立 TCP 连接

    • DNS
    • TCP 发送 HTTP 协议发送请求,服务器接收到请求后,通过 HTTP 协议返回响应
    • cdn
      • cdn 来处理一些常用资源,cdn 服务会根据用户的地理位置,选择离用户最近的服务器,加速资源的加载。
    • http 缓存
      • 常见的做法是将主页 index.html 做协商缓存,其他静态资源文件名打包加 hash 后做强缓存。
      • 强缓存是指浏览器直接从本地缓存中读取资源,不需要发送请求到服务器。可以通过设置响应头中的 Cache-Control 和 Expires 来设置强缓存。
      • 协商缓存是指浏览器发送请求到服务器,服务器根据请求头中的 If-None-Match 和 If-Modified-Since 来判断是否命中缓存。可以通过设置响应头中的 ETag 和 Last-Modified 来设置协商缓存。304 意味着命中缓存。
  • 渲染
    浏览器接收到响应后,通过 HTML 解析出 DOM 树,然后通过 CSS 解析出 CSSOM 树,然后通过 DOM 树和 CSSOM 树合成渲染树, 然后通过渲染树和布局树合成布局树,然后通过布局树和绘制树合成绘制树,然后通过绘制树绘制到屏幕上。

    • 其中有两个比较重要的概念是,重排和重绘。
    • 重排是指改变了 DOM 结构或文档流布局,需要重新计算布局,比较耗费性能。
    • 重绘是指改变了元素的样式,但是没有改变布局,只需要重新绘制,而不需要重新计算布局,性能开销较小。

花木瑞八股前端记录面试大约 8 分钟
工程化

2023-02-23

嗯...是让我比较郁闷、羞耻的一个东西。

郁闷是老是搞不对搞不通,羞耻是看着自己以前弄得那几个玩意...怎么说呢,像那种过家家的,p 用没有,形式都不对,根本没进到门槛但是又做样子... ——杀了我吧.jpg

我会把 iief 和 commonjs 的一些小的片段改成 esmodule ,会拆分一些代码;但是真的面对那些工具的时候...还是很懵。

vite 打包,用 pnpm 做 monorepo,还有当我遇到今天的 bug 的时候...我发我连最简单的 js 脚本引入都没了解全。(还有少不了的日常把 src 写成 scr)


花木瑞记录日记大约 2 分钟
Gradle

项目依赖,打包的一堆事... 回头再写


花木瑞记录小于 1 分钟
Java-IO

也许我会...依旧把把云盘这个项目作为推进方向。顺着路去学东西。 而io操作就是其中一个。

JAVA

...虽然用kotlin写的....但都差不多嘛,都是java,都是java。


花木瑞记录小于 1 分钟
Spring

(现在学java几乎就是学spring全家桶...

虽然java的许多其他生态与经典的工具比如io也是肯定要看的。


花木瑞记录小于 1 分钟
CSS

how to become a master of css

2023-04-01 21:40:42
要说... 我真是... 弱。
css确实有太多属性根本记不清要现看,但是,还是要有那些,处理经典问题的方案,以及整体思路。...

mdn 的官网很好,真的很好。也许一开始我体会不到...

稍微分一下学习的几个阶段。意外=>视频/手把手,这里是基础的补常识的阶段(但这里,有可能也是选定方向的时候)=>炫酷的小东西,博客=>项目,实战或者失败=>理解,思考,总结,官方文档或者别的一些更深入更成体系的东西。
我...找不对方向,瞎晃了好久... 再或,也许更多的人就是,...好早就能明确的知道一切并规划好的... md 反正不是我。不过要再说... 所谓的对的事情、正路,如果找到、维持它们会那么难,为什么它们还是正路...


花木瑞记录大约 11 分钟
怎么写东西

引子

前端,这些年来算是一个变化挺快,也吵的挺欢的地方。(不然我也不会注意到)
可能比起java那边一大片万年不变的java8,js这边一有新出的写法就去用就去尝试。而因为这种...热情?为了用新写法的同时兼容旧版本的js还出了个专门从高版本转到低版本的像是编译器一样的东西————babel。

不光是js的各种版本,typescript,或者vue、react等等前端的库或者框架也一样,提供的更多的也并非是机器性能上的优化,反正它们最后都要转成js才能被浏览器运行...它们提供的更多的是写法与一种实践模式的优化。————不光要关心机器那边的问题,人这边的问题也要关心。
单文件组件,vue的模板语法,react的hook..也会有疑问,是因为有了这些想法才让前端也长成了一片有着不小复杂度、能做成更多事情的地方,还是因为想要做到更多事情,才慢慢从这里挖出了这些想法......我觉得是前者,可能,一开始就是闲得。


花木瑞记录挖坑大约 2 分钟
Java

虽然学校教的一堆java...但好像...可能不如能直接看到结果的前端那么想学吧... 好烦哦...

另一个...虽然前端,web有那么一大票框架和相应生态,带基本都是js,nodejs里的。 而后端这边...虽然java是一顶一的老大哥,但是平台、语言却有一大堆。 go,c#,php,ruby,python...它们都各有特点,有独属的应用场景...但也一样有一堆问题...看了一圈我也分不清哪个好哪个坏...但是java要挨骂是肯定无需置疑。 c#的特性比java好,jvm内部也出了kotlin scala 之类的语言,可在互联网相关的开发,不管它们怎么吹好像java都能回一句“我生态好”。 还有一个,也许在技术动不动就更新翻篇的互联网,java这种管你怎么更新,十年过去就算java18都出了我依旧java8的操作有些罕见了,甚至是股清流?(不是。但...管它呢。 ps:我之前还听说go会轻量简洁一些...但...日了,简洁的是生态,是简陋的语法...在云原生的许多基础设施上有它的身影,但...这门语言绝对算不上好看......


花木瑞记录大约 5 分钟
大忽悠(大数据)/hadoop相关配置

恕我直言,用什么hadoop hbase对于现在绝大多数项目而言就是闲得蛋疼,尤其是连搭环境都要搭半天,最后还只在本地机器开虚拟机然后只开一个的。 这些东西是为了规模而生的,并且也不是唯一解法,做出来玩具项目也只能说是摸一摸而已,而现在这种...连摸都不算,可能是hello world吧。 好讨厌java...也许是因为学校太傻比。————明明已经是实践课程了,却仍以那狗屁技术要点为中心,那些东西用什么写出来根本就无所谓,而在不了解具体实践与场景的情况下,也不可能把原本的技术目的与解决的问题搞清楚..所以连摸都不算。

记一下配置,也方便复制粘贴...Ubuntu22上装hadoop,hbase 然而还没装好... 这玩意有什么一键配置的操作吗,就像docker那种...艹,我应该先去找这玩意的。


花木瑞记录运维大约 2 分钟
2