js内存泄漏
什么是内存泄漏?
程序的运行需要内存。只要程序提出要求,操作系统或者运行时(runtime)就必须供给内存。
对于持续运行的服务进程(daemon),必须及时释放不再用到的内存。否则,内存占用越来越高,轻则影响系统性能:变慢,延迟大等 ,重则导致进程崩溃。
v-for和v-if避免一起使用?
原因:v-for比v-if优先级高,所以使用的话,每次v-for都会执行v-if,造成不必要的计算,影响性能,尤其是当之需要渲染很小一部分的时候,也得在每次重渲染的时候遍历整个列表,所以尽量不要把v-for和v-if同时用在一个元素上。
解决可以有以下两种情况:
- 为了过滤一个列表中的项目(比如v-for="user in users" v-if="user.isActive"), 将users替换为一个计算属性(比如activeUsers),让它返回一个过滤后的列表
- 为了避免渲染本应该被隐藏的列表(比如v-for="user in users" v-if="shouldShowUsers")
原型链 (JS原型与原型链继承)
实例对象与原型之间的连接,叫做原型链。proto( 隐式连接 )
所有的对象都有个__proto__属性,他是个指针,实例化对象的__proto__属性指向原型
JS在创建对象的时候,都有一个叫做proto的内置属性,用于指向创建它的函数对象的原型对象prototype。
内部原型(proto)和构造器的原型(prototype)
1、每个对象都有一个proto属性,原型链上的对象正是依靠这个属性连结在一起
2、作为一个对象,当你访问其中的一个属性或方法的时候,如果这个对象中没有这个 方法或属性,那么Javascript引擎将会访问这个对象的proto属性所指向上一个对 象,并在那个对象中查找指定的方法或属性,如果不能找到,那就会继续通过那个对象 的proto属性指向的对象进行向上查找,直到这个链表结束。
同源策略:
是浏览器的安全协议 协议 主机(域名、IP) 端口号不一样
跨域:不同源就是跨域
怎么解决跨域
1、后台放开(不安全)通过PHP设置响应头允许跨域
2、JSONP(利用script标签的src属性 不受同源策略限制的属性)把地址写上
3、前端配置代理 本地请求-远程 代理:A客户端访问A服务器,并在A服务器上做代理访问B服务器把请求结果返回A客户端,即实现了A客户端请求B服务器的跨域需求。
history
模式是指使用HTML5的historyAPI
实现客户端路由的模式,它的典型表现就是去除了hash
模式中url路径中的#