长列表问题

长列表问题

虚拟列表​ 考虑列表项多的列表,最常见的优化是分页显示。但是这样的用户体验不是很好,特别是移动端。为了进一步提升用户体验,把数据做成滚动到底部自动加载。这个对用户很友好,但是会产生一个问题,页面显示的数据非常多,页面DOM的数量上升到一定的程度就会导致卡顿。针对这样场景的优化其中之一就是虚拟列表。 ​ 虚拟列表,虚拟指的是用户看到的不是真实DOM结构,开发者通...

编码:ASCLL,Unicode,UTF-8

编码:ASCLL,Unicode,UTF-8

计算机是由美国人发明的,所以计算机中能识别的只有英语,也即一些字母和对应的符号。计算机对这些符号的识别编码就是ASCII码 计算机不断发展,各个国家都想要计算机能显示存储自己的语言,所以各国又为本国语言出了一套编码,如中国的GB2312 计算机发展为全球性技术,但是每个国家都有自己的一套编码,所以一个二进制数通过不同的编码就可以被解析成不同的符号,那么打开一个文件,...

前端调试

前端调试

调试​ 调式是开发必不可缺的一环,但是日常开发中总感觉自己除了看看输出基本就不会其他的东西,平常给页面做了优化都看不出来。。。现在得空,是时候打开新世界的大门了 ​ 前端的结果由浏览器展示,那么最好的调试也是在浏览器上进行的。chrome浏览器,包括其它大部分的浏览器都提供了开发者工具给开发人员进行调试。那么具体怎么用?下面记录chrome提供的开发者工具使用...

搭建博客

搭建博客

博客互联网最大的特点就是共享,身为一名开发人员,从网上也学了不少知识,也想开始弄一下个人的博客,写一些东西,回馈一下社会。。 博客是怎样的呢?博客其实分两部分:博客网站和本地格式化工具(静态网站生成技术)。在本地用markdown写好文章,用静态网站生成技术,生成对应的html,把这些html放到服务器,服务器通网,别人就和访问网页一样可以访问这些文章了。说白了,博客其实...

二叉树

二叉树

深度优先遍历(DFS) 先序遍历:当前节点,左节点,右节点中,先检查当前节点,再左节点,最后右节点 中序遍历:当前节点,左节点,右节点中,先检查左节点,再当前节点,最后右节点 二叉搜索树 节点的左子树的值都小于节点 节点的右子树的值都大于节点 当二叉树是二叉搜索树时,中序遍历的值是从小到大的; 后序遍历:当前节点,左节点,右节点中,先检查左节点,再右节点,最后当前...

Web Worker

Web Worker

前言 面试的时候有被问到一个场景:一个页面渲染程的需要计算上亿的次的计算,如何可以将页面尽量快的完成渲染 一开始以为是考<script>写的位置(body的底部),或者defer属性(先下载渲染后再加载),但是似乎都不是面试官想要的答案 直到学习到了Web Worker… Web Worker 概述:由浏览器提供的web Api,主要是为了个js提供多...

monorepo和lerna

monorepo和lerna

大项目管理 随着前端的不断发展,代码变得越来越繁杂,为方便管理,减小维护成本,也为了方便复用,大代码库被地划分为更小粒度的代码。那这些小代码库应该如何管理?大致有两类解决方案: multi reop 即一个包一个库 每个包都有独立的库管理,开发自由度高 调用时,要像第三方包一样被调用; 修改时,源代码要到被调用的库修改,然后由调用者修改调用方式 mono...

node开发cli

node开发cli

使用一个公司,大概率上,会定义很多开发规则,而且在开发习惯上也会有很多相似的地方。这样每个项目类似的目录结构和配置。每一次搭建新项目就需要重新写一遍,这即“重复性工作”。为了减少这些“重复性工作”,cli(command line interface)出现,少量的参数即可自动搭建出一个项目雏形。著名的CLI有vue-cli,create-react-app等 利用nod...

npm包发布

npm包发布

首先必须是npm包,所以第一步是npm初始化npm init 当前目录会出现一个package.json 1234567891011{ "name": "p_n_p_demo", "version": "1.0.0", "description": &qu...

DNS

DNS

DNS,Domain Name System,域名系统;主要是用来把域名转换成IP地址。 为什么ip不可以直接是域名的字符串样子? ip是固定的32位(IPv4)如果是IPv6就是固定的128位,是二进制计算机容易识别。域名是不定长的(虽然有最大程度255字节而且)字符串形式机器直接使用困难,需要翻译。 那直接用ip不就好了, 为什么要有域名?好记啊。。。ip地址的...

×
  • {title}