JS模式中总结的知识点

来源:互联网 发布:我的世界手机java版 编辑:程序博客网 时间:2024/05/21 09:41

1.webworker后台的计算线程,跟前台的UI线程是完全独立的机制。js是单线程的
2.contenteditable(xss)
3.鼠标点击事件与触屏事件的触发顺序(mouseup,mousedown,click,touchstart,touchmove,touchend),与用户点击触摸的顺序有关。
4.响应式布局开发中,使用viewport固定整个页面宽度,移动端固化。
5.性能优化:减少或避免repaint(比如元素颜色变化),reflow(比如元素位置变化,较重绘成本大)(页面重绘,页面回流),总的来说,减少对dom元素的操作。
使用transform代替DOM操作。
(1)不要给非static定位元素增加css3动画 (2)适当的使用硬件加速。(使用手机的GPU,将图片画在canvas就可触发硬件加速),
6.indexDB,相比localstorage 存储更大量数据
7.技术选型:轻量化,维护简单,快速开发
8.jquery是解决浏览器差异化的一个库
9.原生Js和框架选择看项目复杂程度。引入框架:学习成本高
10.DOM访问的代价是昂贵的,因为DOM通常是独立于javascript引擎而实现的。
11.DOM树
12.为经常访问的元素增加id属性,因为document.getElementById(myid)是最简单快捷查找节点的方法。
13.更新DOM(修改、删除或增加DOM元素)会导致浏览器重新绘制屏幕,也会经常导致reflow(即重新计算元素的几何位置)。
14.触发事件时,有时需取消事件的传播,如果不这么做,会导致事件传播到文档根,甚至是传播到window对象中,采用两种方法实现:一种是W3C的标准方法(stopPropagation);
;另外一种是IE特有的方法(cancelBubble).
15.如果需要时,要阻止执行默认操作。一些事件拥有默认操作,但是可以使用preventDefault()来阻止默认操作。(在IE中,通过将returnValue设置为false来实现)
16.事件授权的缺点在于如果碰巧没有感兴趣的事件发生,那么增加的小部分代码显得没用。但采用该模式获得的收益远大于缺点,强烈推荐使用该模式。
17.在js中没有线程,但是可以在浏览器中使用setTimeout()来模拟线程,在最新版的浏览器中使用web workers
18.web workers为长期运行的脚本提供了解决方案,可以将任务比较繁重的计算放在单独一个文件中。
19.使用CDN:CDN是内容分发网络的缩写,CDN提供付费的主机服务,它允许您将文本副本放置于全球各个数据中心,以便用户可以选择速度最快的服务器进行连接,而您文件代码中的URL地址不需要修改。
20.document.documentElement是指html,它的第一个子元素就是head. document.body指的是body元素。
21.insertBefore(A,B)指的是将A元素插入到B元素前面。
22.延迟加载:页面载入完成后,载入外部文件的技术。
23.动态加载script标签的好处:无阻塞的下载页面其他元素。原因?
24.按需加载的应用场景?
25.图像灯塔模式发出请求:new Image().src=”preloadme.js”;
26.预加载模式在登录页面十分有用,当用户开始输入用户名时,可以使用输入的时间来启动预加载,因为用户下一步极有可能进入登录页面。

问题:
1.js是一种弱类型、动态的、基于原型的语言。为什么是动态的?
2.单体模式中闭包中的实例,重写构造函数 创建相同实例的原理?

原创粉丝点击