首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

每天10个前端小知识 【Day 4】

iframe 宽高啥调整到页面全部,这样用户进来除了域名,别的部分和银行网站没有任何差别。...诸如 或 之类脚本会阻塞 DOMContentLoaded,浏览器等待它们执行结束。 图片和其他资源仍然可以继续被加载。...当页面和所有资源都加载完成时,window 上 load 事件就会被触发。我们很少使用它,因为通常无需等待那么长时间。...什么是变量提升 函数在运行时候,会首先创建执行上下文,然后执行上下文入栈,然后当此执行上下文处于栈顶时,开始运行执行上下文。...数据与服务器之间交互方式, cookie数据会自动传递服务器,服务器端也可以写cookie客户端; sessionStorage和localStorage不会自动把数据发给服务器,仅在本地保存

11010

单点登录 3 种实现方式

如果用户登录状态是记录在 Session 中,要实现共享登录状态,就要先共享 Session,比如可以 Session 序列化 Redis 中,让多个应用系统共享同一个 Redis,直接读取 Redis...不过,在前后端分离情况下,完全可以不使用 Cookie,我们可以选择 Session ID (或 Token )保存到浏览器 LocalStorage 中,让前端在每次向后端发送请求时,主动 LocalStorage...关键代码如下: // 获取 token var token = result.data.token; // 动态创建一个不可见iframe,在iframe加载一个跨域HTML var iframe...(iframe); // 使用postMessage()方法token传递iframe setTimeout(function () { iframe.contentWindow.postMessage...iframe加载HTML中绑定一个事件监听器,当事件被触发时,把接收到token数据写入localStorage window.addEventListener('message', function

73510
您找到你想要的搜索结果了吗?
是的
没有找到

单点登录三种实现方式,你会几种?

如果用户登录状态是记录在 Session 中,要实现共享登录状态,就要先共享 Session,比如可以 Session 序列化 Redis 中,让多个应用系统共享同一个 Redis,直接读取 Redis...不过,在前后端分离情况下,完全可以不使用 Cookie,我们可以选择 Session ID (或 Token )保存到浏览器 LocalStorage 中,让前端在每次向后端发送请求时,主动 LocalStorage...关键代码如下: // 获取 token var token = result.data.token; // 动态创建一个不可见iframe,在iframe加载一个跨域HTML var iframe...(iframe); // 使用postMessage()方法token传递iframe setTimeout(function () { iframe.contentWindow.postMessage...iframe加载HTML中绑定一个事件监听器,当事件被触发时,把接收到token数据写入localStorage window.addEventListener('message', function

6.5K21

一文搞懂单点登录三种情况实现方式

,扩展性好,是单点登录标准做法 不同域名下单点登录(二) 可以选择 Session ID (或 Token )保存到浏览器 LocalStorage 中,让前端在每次向后端发送请求时,主动LocalStorage...数据传递给服务端 这些都是由前端来控制,后端需要做仅仅是在用户登录成功后, Session ID(或 Token)放在响应体中传递给前端 单点登录完全可以在前端实现。...获取 token var token = result.data.token; // 动态创建一个不可见iframe,在iframe加载一个跨域HTML var iframe = document.createElement...("iframe"); iframe.src = "http://app1.com/localstorage.html"; document.body.append(iframe); // 使用postMessage...()方法token传递iframe setTimeout(function () { iframe.contentWindow.postMessage(token, "http://app1

3.8K20

阿里前端二面常见面试题汇总_2023-03-01

window属性之一,它可用于解决以下方面的问题: 页面和其打开新窗口数据传递 多窗口之间消息传递 页面与嵌套iframe消息传递 上面三个场景跨域数据传递 用法:postMessage(data...= document.createElement('iframe'); // 加载跨域页面 iframe.src = url; // onload事件会触发2次,第1次加载跨域页...; 通过iframesrc属性由外域转向本地域,跨域数据即由iframewindow.name外域传递本地域。...服务端Session存储一个节点,Cookie存储sessionId Cookie使用场景: 最常见使用场景就是Cookie和session结合使用,我们sessionId存储Cookie中...Key localStorage.key(index) LocalStorage使用场景: 有些网站有换肤功能,这时候就可以换肤信息存储在本地LocalStorage中,当需要换肤时候,直接操作

1.4K00

八种方式实现跨域请求

同源策略限制了同一个源加载文档或脚本如何与来自另一个源资源进行交互。这是一个用于隔离潜在恶意文件重要安全机制。 那么,何为同源呢?...)是数据格式 JSON 一种“使用模式”,可以让网页别的网域要数据。...缺点: 只能使用Get请求 不能注册 success、error 等事件监听函数,不能很容易的确定 JSONP 请求是否失败 JSONP 是其他域中加载代码执行,容易受到跨站请求伪造攻击,其安全性无法确保...然后,HTML文件传递给请求者字符串内容赋值给window.name。然后,请求者可以检索window.name值作为响应。...会报错,所以需要加载完成替换为当前域URL(localhots:10000),proxy.html为空白页面,只为解决该问题; ?

1.7K41

不同页面通信与跨域

localStorage进行修改时才会触发,当前页面修改localStorage不会触发监听函数。...下面例子,都是一个html内嵌iframe,当然你直接打开iframe那个文件,没什么意义 2.1 利用hash变化传递信息实现父子窗口通信(能跨域) 父窗口:1.html html: <iframe...var i = document.querySelector('iframe') i.onload= function(){//这是异步加载iframe i.src += '#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...前面我们已经知道,iframe能跨域,localstorage能使得两个tab页面通信。那我们就来试一下,iframe桥接两个互不相干tab页面。...加上websocket的话,还可以非同源聊天呢,其他可以自己随意设置了。 12信息实时传递更新就这样子成功了,反之亦然。 4.MessageChannel 顾名思义,信息通道。

1.8K10

我是如何页面加载时间6S降到2S

DNS 这个大家应该是很熟悉,每天都在用东西 说通俗点,它就是一个用来ip地址和域名相互映射数据库,帮助人们更加方便使用互联网,再也不用记住那些复杂服务器地址,直接输入服务器地址所绑定域名就可以访问...CDN 内容分发网络(Content delivery network)其实就是一种透过互联网互相连接计算机网络系统。利用最靠近每位用户服务器,更快、更可靠地资源发送给用户。...节点数多意味着可供用户选择响应节点多,优中选优,不必多说了,优秀。 网页加载时间 网页加载时间其实可以看作是页面响应时间。那么,它是由哪些部分组成?影响因素都有哪些?哪些我们是可以优化?...获取该数据所需时间越长, 显示页面所需时间就越长。 这部分主要能做就是使用CDN和优化后端性能。 CDN 原来使用是某云服务,查看日志发现命中率较低,回源较多,在加上节点数量一般。...PS:福利,转发本公众号任意一篇文章朋友圈集20个赞,即可获取掘金小册5折码哦! - end - 用心分享 一起成长 做有温度攻城狮 每天记得对自己说:你是最棒

85920

不同页面通信与跨域0. 前言1. localstorage2. 玩转iframe3. 非同域两个tab页面通信4.MessageChannel

localStorage进行修改时才会触发,当前页面修改localStorage不会触发监听函数。...下面例子,都是一个html内嵌iframe,当然你直接打开iframe那个文件,没什么意义 2.1 利用hash变化传递信息实现父子窗口通信(能跨域) 父窗口:1.html html: <iframe...var i = document.querySelector('iframe') i.onload= function(){//这是异步加载iframe i.src += '#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...前面我们已经知道,iframe能跨域,localstorage能使得两个tab页面通信。那我们就来试一下,iframe桥接两个互不相干tab页面。...加上websocket的话,还可以非同源聊天呢,其他可以自己随意设置了。 ? 12信息实时传递更新就这样子成功了,反之亦然。 4.MessageChannel 顾名思义,信息通道。

4.1K20

Java 最常见 208 道面试题:第八模块答案

接收方产生粘包 接收方采用TCP协议接收数据时过程是这样:数据到底接收方,网络模型下方传递至传输层,传输层TCP协议处理是将其放置接收缓冲区,然后由应用层来主动获取(C语言用recv、read...方式二:JSONP跨域 JSONP(JSON with Padding)是数据格式JSON一种“使用模式”,可以让网页别的网域要数据。...根据 XmlHttpRequest 对象受到同源策略影响,而利用 元素这个开放策略,网页可以得到其他来源动态产生JSON数据,而这种使用模式就是所谓 JSONP。...缺点: 只能使用Get请求 不能注册success、error等事件监听函数,不能很容易的确定JSONP请求是否失败 JSONP是其他域中加载代码执行,容易受到跨站请求伪造攻击,其安全性无法确保...然后,HTML文件传递给请求者字符串内容赋值给window.name。然后,请求者可以检索window.name值作为响应。

86230

大厂前端面试考什么?

可以看到XSS危害如此之大, 那么在开发网站时就要做好防御措施,具体措施如下:可以浏览器执行来进行预防,一种是使用纯前端方式,不用服务器端拼接后返回(不使用服务端渲染)。...这样本质上起到了对客户端隐藏真实服务器作用。一般使用反向代理后,需要通过修改 DNS 让域名解析代理服务器 IP,这时浏览器无法察觉真正服务器存在,当然也就不需要修改配置了。...,且是为数不多可以跨域操作window属性之一,它可用于解决以下方面的问题:页面和其打开新窗口数据传递多窗口之间消息传递页面与嵌套iframe消息传递上面三个场景跨域数据传递用法:postMessage...;通过iframesrc属性由外域转向本地域,跨域数据即由iframewindow.name外域传递本地域。这个就巧妙地绕过了浏览器跨域访问限制,但同时它又是安全操作。....'); });});闭包首先说明什么是闭包,闭包简单来说就是函数嵌套函数,内部函数引用来外部函数变量,从而导致垃圾回收机制没有把当前变量回收掉,这样操作带来了内存泄漏影响,当内存泄漏一定程度会影响你项目运行变得卡顿等等问题

1.2K20

HTML和CSS面试题及答案总结一

因此,在页面DOM加载完成CSS导入完成之间会有一段时间页面内容是没有样式。 原理:当样式表晚于结构性html加载,当加载到此样式表时,页面停止之前渲染。...此样式表被下载和解析后,重新渲染页面,也就出现了短暂花屏现象。 解决方法:使用link标签加载CSS样式文件。...如果已经访问过并且资源已经离线存储了,那么浏览器就会使用离线资源加载页面。...3)网页如果为了统一风格,头部和版本都是一样,就可以写成一个页面,用iframe来嵌套,可以增加代码可重用。 4)如果遇到加载缓慢第三方内容如图标和广告,这些问题可以由iframe来解决。...答: CSS样式表继承指的是,特定CSS属性向下传递子孙元素。

1.2K10

前端知识点系列一:HTML

(让浏览器按照它们应该方式来运行); 而HTML4.01基于SGML,所以需要对DTD进行引用,才能告知浏览器文档所使用文档类型。...cookie数据始终在同源http请求中携带(即使不需要),记会在浏览器和服务器间来回传递。 sessionStorage和localStorage不会自动把数据发给服务器,仅在本地保存。...iframe会阻塞主页面的Onload事件; 搜索引擎检索程序无法解读这种页面,不利于SEO; iframe和主页面共享连接池,而浏览器对相同域连接有限制,所以会影响页面的并行加载。...,控制它值来进行页面信息通信 4....ASCII,Unicode和UTF-8区别 ASCII:英文字符映射为二进制字符编码 Unicode:包含全世界所有字符集合。

55810

vivo 商品中台可视化微前端实践

它可以现有商品功能最大效率复用在很多业务上(公司内业务、公司外业务等)。而不是仅限于当前团队业务使用。...使用 vuex 完成 iframe 数据通信是如何实现呢?...4.2 为什么要做微前端 整体概括下,主要有以下两个目的: 商品中台更快、更好嵌入各个业务方项目中; 为后面主应用设计做准备。...区分同样使用 qiankun 不同主应用:主应用与微应用之间约定参数,通过 window 对象或者生命周期函数中 props 对象传递,来进行判断。...解决方案如下: 主应用注册微应用时, entry 设置为 localstorage 中获取,在 localstorage 中手动修改入口 entry 值为微服务本地地址,就可以实现本地联调。

1.1K50

前端面试题1(HTML篇)

link属于XHTML标签,除了加载CSS外,还能用于定义RSS,定义rel连接属性等作用;而@import是CSS提供,只能用于加载CSS 页面加载时,link会同时被加载,而@import引用...如果已经访问过app并且资源已经离线存储了,那么浏览器就会使用离线资源加载页面,然后浏览器会对比新manifest文件与旧manifest文件,如果文件没有发生改变,就不做任何操作,如果文件改变了...离线情况下,浏览器就直接使用离线存储资源 请描述一下 cookies,sessionStorage 和 localStorage 区别?...缺点: iframe会阻塞主页面的Onload事件 搜索引擎检索程序无法解读这种页面,不利于SEO iframe和主页面共享连接池,而浏览器对相同域连接有限制,所以会影响页面的并行加载 使用iframe...如果需要使用iframe,最好是通过javascript动态给iframe添加src属性值,这样可以绕开以上两个问题 优点: 用来加载速度较慢内容(如广告) 可以使脚本可以并行下载 可以实现跨子域通信

1.8K10

前端和前端联调各种姿势,了解一下

其实也是存在,比如另一个前端写了一个庞大模块(如游戏、在线ide、可视化编辑页面等需要沙盒环境情况),此时引进来需要使用iframe使用。...而且需要iframeonload触发后才能使用postmessage iframe哈希变化通信 低门槛一种手段,可以跨域 父页面 const iframe = document.querySelector...("iframe"); const { src } = iframe; // 把数据转字符串,再通过哈希传递页面 function postMessageToIframe(data)...frame. onstorage事件 父子iframe页面通信 localstorage是浏览器同域标签共用存储空间。...可以被多个页面同时使用,可以几个浏览上下文中访问,例如几个窗口、iframe、worker。

1.4K10

腾讯前端一面常考面试题_2023-03-13

,且是为数不多可以跨域操作window属性之一,它可用于解决以下方面的问题:页面和其打开新窗口数据传递多窗口之间消息传递页面与嵌套iframe消息传递上面三个场景跨域数据传递用法:postMessage...document.createElement('iframe'); // 加载跨域页面 iframe.src = url; // onload事件会触发2次,第1次加载跨域页,并留存数据于...;通过iframesrc属性由外域转向本地域,跨域数据即由iframewindow.name外域传递本地域。这个就巧妙地绕过了浏览器跨域访问限制,但同时它又是安全操作。...在比较长网页或应用中,如果图片很多,所有的图片都被加载出来,而用户只能看到可视窗口那一部分图片数据,这样就浪费了性能。如果使用图片加载就可以解决以上问题。...在滚动屏幕之前,可视化区域之外图片不会进行加载,在滚动屏幕时才加载。这样使得网页加载速度更快,减少了服务器负载。懒加载适用于图片较多,页面列表较长(长列表)场景中。

1K40

输入URL页面加载过程中都发生了什么事情

一个HTTP请求过程 为了简化我们先从一个HTTP请求开始,简要介绍一下一个HTTP求情网络传输过程,也就是所谓输入 URL 页面下载完过程中都发生了什么事情” ●DNS Lookup 先获得...虽说博主做过Webkit本地渲染优化,但是深知网页加载主要时间还是浪费在网络通信上,所以在这些步骤上优化会比你在浏览器内核优化省力且效果明显。...服务器上缓存 当然DNS缓存失效期通常都比较短,很多情况下都要再去查找,为了降低用户体验延迟(注意这里不是网络延时)预取是一个不错方法。...所以在你敲第一个字母时候dns解析完了就去建立连接了,这时候你可能网址还没敲完。当你刚访问一个网站时候浏览器刷刷刷帮你把别的服务器TCP连接给你建好。...HTTP传输优化 写到这里可能有人会想,既然已经把TCP连接建立好了,那我干脆预取更进一步,把所有的链接内容直接预取下来不就好了,这样我网址还没敲完网页就已经加载完成了。

1.4K100
领券