阅读 68

前端- JavaScript的那些知识点(三)

前端跨域问题

同源策略:协议、域名、端口号要相同 1、jsonp:只能解决get。原理:动态创建一个script标签,利用script的src和herf都不受同源策略的限制去请求第三方度服务器的资源内容。地址后边问号然后生命一个函数用来本地接受

2、document.domain基础域名相同,子域名不同

3、window.name利用在一个浏览器窗口内,载入所有的域名都是共享一个window.name

4、服务端设置HTTP响应头Access-Control-Allow-Origin

5、H5新特性window.postMessage(data,url)

图片预加载和懒加载

预加载: 提前加载图片,当用户需要查看时可以直接从本地缓存中渲染,在网页加载之前就先对一些主要内容进行加载,也可以先使用svg占位图等待数据的请求,否则,如果一个页面的内容过于庞大,就会出现空白。这样可以提升用户体验。

懒加载: 客户端优化,减少请求次数和无效资源的加载,防止并发加载的资源过多会阻塞js加载。 首先将页面上的图片的src设置为空字符串,而图片的真事路径啧设置在data-original属性中,当页面滚动到可视区域,就讲data-original的值赋给src,就可使实现懒加载

js垃圾回收机制

常用的方法是标记清除,在局部作用域很好实现,全局比较难,所以应该尽量避免全局变量

标记清除:当变量进入环境时,就将这个变量标记为"进入环境",永远不能释放进入环境变量所占用的内存,当变量离开环境时,则将其标记为"离开环境",垃圾回收机制会回收这个被标记为"离开环境"的变量

引用计数:语言引擎有一张"引用表",保存了内存里面所有资源(通常是各种值)的引用次数。如果一个值的引用次数是0,就表示这个值不再用到了,因此可以将这块内存释放。

js、css阻塞

js阻塞: 所有浏览器在下载js的时候,会阻止一切其他活动,比如资源的下载,知道js下载、解析、执行完成之后才开始继续并行下载其他内容

css阻塞: 因为浏览器会维持html中的css和js 的顺序,样式表必须在加载js前先加载、解析完成,否则就会出现css阻塞下载的情况


作者:盖了帽了
链接:https://juejin.cn/post/7028077838976679967


文章分类
前端
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐