问题一:图片延迟加载是怎么实现的?
- 在结构上,我们把img标签放到一个div盒子中,开始的时候图片的src中的地址为空,我们把图片的真实存放在一个自定义属性data-src中,我们给图片所在的盒子设置一个默认的背景图占位(最好是小1kb)
- 在js中,当监听到页面中的结构和数据都加载完成后(或者一个间隔时间),开始把图片的真实图片地址赋值给img中的src(为了防止图片地址不存在导致404错误,我们在赋值给图片src属性是,往往会验证一下图片是否存在)
问题二:如何实现浏览器内多个标签页之间的通信?
本题主要考察的是数据纯粹的知识。数据存储有本地和服务器存储两种方式,这里主要用本地存储解决,即调用localStorage,cookis等本地存储方式 第一种调用localStorage
在一个标签页面使用localStorage.setItem(key,value)添加修改或删除内容在另一个标签页面监听storage事件,即可得到localStorage存储的值,实现不同标签标签之间的通信复制代码
第二种cookie+setInteraval() 将要传递的信息存储在cookie中,每隔一定时间获取cookie信息,即可随时获取要传递的信息
第三种 h5的postMessage postMessage(data,origin)方法接受两个参数,分别在子页面和父页面触发messag事件即可
问题三:同源策略
协议 域名 端口号都一致 则是同源 如果协议 域名 端口号这三个有一个不一样则是跨域
- 为什么浏览器默认不支持跨域?
cookie localStorage DOM元素 ajax 这些都不支持跨域
- 实现跨域(让两个页面之间通信)
- jsonp (执行完后返回的是一个promise 缺点只能发送get请求,并且不安全)
- cors 纯后端提供的(最常用的 安全性高)
- postMessage 两个页面间可以通信
- document.domain 专门做子域和父域关系的
- window.name
- location.hash
- http-proxy
- nginx
- websocket
问题四:ifram的缺点
- ifram会阻塞主页面的onload事件
- 搜索引擎无法检索这种页面,不利于seo优化
- ifram和主页面共享连接池,而浏览器对相同域的连接有限制,所以会影响页面的加载速度
问题五:let 和 var 的区别
- let没有变量提升
- let 会形成块级作用域
- 存在暂时性死区
问题六:CSS优先级比较
!important>id>class>tag important比内联优先级高
问题七:XML和HTML的区别
- 功能上的区别 XML可兼容各大浏览器,手机以及PDA,并且浏览器也能快速正确的编译网页,
- 书写习惯 XML元素必须被正确的嵌套,闭合,区分大小写,文档必须拥有根元素
问题三:vue有哪些自定义属性