1.业务场景中需要嵌入公司其他行业线的页面,这种不使用 iframe 该怎么办?
答:理论上应该让他们给你做个组件出来,但是如果实在没别的办法,就使用 iframe 吧。
2.jquery ajax 同步请求的原理是? 目前用 axios 库,不支持同步请求,如果希望执行同步请求有什么解决办法?
答:原理是 XMLHttpRequest 这个可以传第三个参数,但是我不建议你用同步请求,会把 JS 执行线程卡住。
3.把 JavaScript 代码缓存在 localStorage 中,从 localStorage 取出后怎么执行? 如果缓存的是 CSS 呢?
答:执行 JavaScript 用 eval,执行 CSS 用 document.createElement(“style”)。
4.var,let 和 const 在 babel 中都会被编译为 var, 那怎么区分 const 是常量呢?
答:如果你用 babel 的话,就不要管编译后的代码。
5.关于线上监控的数据采集和数据显示,有好的插件或者方案推荐?
这个其实没有现成的,这个东西,如果公司从数据安全的角度考虑,一般都不让用第三方的。
6.最近一直在研究前端性能优化和线上错误收集,收效甚微,老师可以讲解一下大厂是怎么处理的吗?
答:这一部分,首先你需要一个比较通用的日志服务,能接受前端用 HTTP 请求的方式打一些日志进去,一般公司都会有这样的系统,如果没有,就需要新建一个,这部分比较麻烦,需要一定的专业知识。
有了这个日志服务,剩下的就是在每个前端页面插入一个 JavaScript 代码,监听 Window.onerror 可以得到错误,取 window.performance 可以得到性能,拿到以后,打日志就行了。
至于后续怎么去展示,展示了以后又怎么去推动执行,这块就需要你自己根据公司实际情况去找到解决方案了。
7.请问前端架构中,每个逻辑页面如何可以做到独立发布呢?
答:首先,我们要知道发布是什么意思,我们平时开发好一个网页,把它放到线上真实对用户服务的机器上,这个过程叫做发布。
正常来讲,前端工程师发布的原材料是 HTML,产出是一个线上的 URL 地址。
各个公司的发布系统差异非常的大,有的是前端发 HTML,有的是前端把代码给服务端同学,改成 JSP 之类的代码,再一起发布。
对于逻辑页面而言,我们需要发布的从 HTML 变成了 JavaScript,这个 JavaScript 代码的作用就是渲染一个页面的内容。同时我们线上还需要一个公共的 HTML 文件来运行这些 JavaScript。
最后这些 JavaScript 文件只要能够做到独立发布,我们就可以认为逻辑页面是独立发布了。
8.对于一个后端开发者来说,前端最困难的东西永远是 CSS 布局而不是 JavaScript,我们对 CSS 有很大畏惧和恐慌在于:CSS 没有很好的调试工具能解决问题,即使 chrome dev 这样的顶级 debug 工具,有时候也很难解释诸如“为什么页面上的这个盒子在这个地方”这样的问题。感觉 CSS 完全不符合编程的思路,老师有没有办法缓解一下这个问题?
答:其实我在课程中已经解释过了,早期的 CSS 从思路上来说就很别扭, 任何人都会觉得别扭,现在有了 Flex 布局,我认为这个问题基本可以算解决了。
此文章为4月Day23学习笔记,内容来源于极客时间《重学前端》