对于 FEer 来说,JavaScript 是单线程,同一时间只能执行一个任务,这种模式的好处是实现起来比较简单,执行环境相对单纯;坏处是只要有一个任务耗时很长,后面的任务都必须排队等着,会拖延整个程序的执行。常见的浏览器无响应(假死),往往就是因为某一段 JavaScript 代码长时间运行(比如死循环),导致整个页面卡在这个地方,其他任务无法执行。对于计算类型的任务,需要使用到 CPU,就只能等待任务执行完毕;但是对于很多时候 CPU 都是闲着的,比如在执行 IO 操作(输入输出),ajax 请求,文件读写等,这些操作 CPU 完全可以不管 IO 操作,可以继续往下执行其他任务。异步机制就是为了解决这个问题,这种机制在 JavaScript 内部采用的事件循环机制(Event Loop)。
自从 Web 诞生以来,我们思考和编写 CSS 的方式发生了巨大变化。从基于表格的布局到响应式设计,我们已经走过了很长一段路,随着现代 CSS 功能越来越强大,如今进入了自适应布局的新阶段。但是一直以来,管理和组织 CSS 都是一项颇有挑战的工作,而且很难达成共识。 在这篇文章中,我们将对 CSS 进行更深入的理解,研究使其难以扩展的底层问题。我们将回顾各种 CSS 最佳实践的演变过程,它们伴随着时间而发展和变化。最后,我们将探讨如何在大型项目上实现可扩展的 CSS,以及 Tailwind 等一系列工具是如何解决这些问题的。
2022,携程PC版首页终于迎来了首次改版,完成了用户体验与技术栈的全面升级。 作为与用户连接的重要入口,旧版PC首页已经陪伴携程走过了22年,承担着重要使命的同时,也遇到了很多问题: 维护/更新困难 祖传代码黑盒逻辑过多,产品也难以推动新需求的上线,旧版首页已经不能满足高速发展的业务需求。 技术栈陈旧且不统一 互联网技术日新月异,旧版首页的整体架构设计和技术栈都相对落后,且大首页中各个组件的研发涉及多事业部合作,存在技术选型差异的问题,增加了维护成本。 用户体验有待改善 旧版携程首页的设计风格沿用至今,在视觉和交互层面上,都已经难以满足用户不断提升的互联网体验和审美需求。 综合上述情况,为了给用户提供更好的服务,携程首页的整体改造迫在眉睫。