web前端面试题@二(Keeplive、V-show和v-if的区别、同源策略及跨域)
跨域——只要协议、域名、端口号有一个不同就是跨域。
v-if 和 v-show区别? v-if 是对标签的创建与销毁, v-show 则仅在初始化时加载一次,v-if 开销相对来说比v-show 大; v-if 是惰性的;v-show 做的仅是简单的css切换。
v-show跟v-if都是做条件隐藏跟显示用的,v-show是页面加载的时候显示的内容跟隐藏的内容同时加载在页面上只是根据条件进行了隐藏。v-if是页面加载的时候根据条件进行显示需要展示的内容。
v-show与v-if都是条件渲染指令。不同的是,无论v-show的值为true或 false,元素都会存在于HTML页面中;而只有当v-if的值为true时,元素才会存在于HTML页面中。v-show指令是通过修改元素的 style属性值实现的。
跨域是指一个域下的文档或脚本试图去请求另一个域下的资源,这里跨域是广义的。
web前端跨域的一些解决方案
1、处理跨域方法三——WebSocket Websocket是HTML5的一个持久化的协议,它实现了浏览器与服务器的全双工通信,同时也是跨域的一种解决方案。WebSocket和HTTP都是应用层协议,都基于 TCP 协议。
2、同源策略JavaScript 的同源策略,是由Netscape提出的一个著名的安全策略,为了阻止A站的JS去操作别的网站的数据。
3、jsonp解决跨域,缺点:只局限于GET请求;应用场景:请求第三方平台数据(比如天气数据)时使用较多 服务器端设置Access-Control-Allow-Origin响应头,允许前端跨域。
请求接口时跨域问题,前端解决方法
1、处理跨域方法一——JSONP JSONP原理 利用script元素的这个开放策略,网页可以得到从其他来源动态产生的 JSON 数据。JSONP请求一定需要对方的服务器做支持才可以。
2、jsonp解决跨域,缺点:只局限于GET请求;应用场景:请求第三方平台数据(比如天气数据)时使用较多 服务器端设置Access-Control-Allow-Origin响应头,允许前端跨域。
3、可以使用服务器代理或者在后端设置允许跨域。现在的项目一般是在后端设置允许跨域,前端在带有允许跨域的情况下,可以像没有跨域一样正常访问。如果前端单独发布到服务器,也可以在服务器是设置代理,使用代理转发请求。
4、搞大前端的,肯定都会遇到跨域问题的,虽然网上这方面的资料也很多,但我还是喜欢自己写一遍,自己理解过、总结过的东西才记得最深刻。