首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    基于 iframe 的全新微前端方案

    的 url 状态就丢失了 dom 割裂严重,弹窗只能在 iframe 内部展示,无法覆盖全局 通信非常困难,只能通过 postmessage 传递序列化的消息 白屏时间太长,对于SPA 应用应用来说无法接受...,而且无界提供了一个去中心化的事件机制 将这套机制封装进wujie框架: 我们可以发现: ✅ 首次白屏的问题,wujie实例可以提前实例化,包括shadowRoot、iframe的创建、js的执行,...白屏时间太长,对于SPA 应用应用来说无法接受 使用无界 如果主应用是vue框架: 安装 `npm i @tencent/wujie-vue -S` 引入 mport WujieVue from "@...){code}这样指定代码执行上下文导致的性能下降,但是多了实例化iframe的一次性的开销,可以通过proloadApp提前实例化 包体积只有11kb,非常轻量,借助iframe和ShadowRoot...iframe劫持document到shadowRoot时,某些第三方库可能无法兼容导致穿透 近期好文: 微信支付团队精益研发实践总结 梳理正则表达式发展史 程序员妈妈的“work-life balance

    7.7K102

    我在公司项目上用了微前端,差点被开除

    path)的配置,达到快速部署的目的,完全无跨域问题 改造背景 目前存在几个站点,但是站点之间的UI展现不一样,我们看起来很不专业 不同站点明明都所属于我们部门的系统,但是跳转时却需要整体的跳转并且出全部的白屏...但他的最大问题也在于他的隔离性无法被突破,导致应用间上下文无法被共享,随之带来的开发体验、产品体验的问题。 url 不同步。浏览器刷新 iframe url 状态丢失、后退前进按钮无法使用。...其中有的问题比较好解决(问题1),有的问题我们可以睁一只眼闭一只眼(问题4),但有的问题我们则很难解决(问题3)甚至无法解决(问题2),而这些无法解决的问题恰恰又会给产品带来非常严重的体验问题, 最终导致我们舍弃了...微前端的难点在于最低成本的实现改造,像我这样不改项目里面的代码,做到最低的成本,让其他小伙伴既能单独开发部署子应用,也可以被集成到微前端模式下 当时我遇到最奇葩的问题是OSS,阿里云的OSS经常返回不带跨域的cors头,导致用户可能白屏...,我直接把OSS去掉,自己做了一个文件服务,专门存放静态资源(这个问题,真的很严重,我们是企业级应用,白屏可以说是超级严重的问题,但是还好及时把流量切走了,后面解决了这个问题)

    99110

    广告等第三方应用嵌入到web页面方案 之 使用js片段

    DOM查询   缺点: 使用了全局变量 2.获取数据 关于获取数据, 服务端生成脚本, 服务端直接查询数据, 静态js脚本方案中, 可使用jsonP, Cors等方案进行跨域请求. 3.输出html 使用document.write...  document.write直接在当前文档流中写入字符串,一旦文档流已经关闭,就打开新的文档流并写入,原来的文档流会被清空,已渲染好的页面就会被清除,浏览器将重新构建DOM并渲染页面.所以使用这种方案...  主页面提供一个不设置src的iframe标签,通过iframe的contentWindow访问iframe的DOM,使用document.write将HTML直接写入到iframe中 var...由浏览器异步处理, 所以此处使用document.write()并不会阻止父页面的加载 优点:    1.完全独立的DOM环境,不会继承父页面的样式   2完全独立的window,避免和主页面其他脚本冲突....html) 都大篇幅介绍使用了iframe进行html输出,iframe提供了一种最佳的避免样式和脚本冲突的嵌入途径,但是有些情况在主页面的DOM中去渲染更为合适 不适合使用iframe的情况:

    3.6K111

    高性能网站建设指南-前端性能优化(二)

    白屏是浏览器对FOUC问题的补充。浏览器可以延迟呈现,直到所有的样式表都下载完之后,然而,其会导致白屏。反之,浏览器可以逐步呈现,但要承担闪烁的风险。这里没有完美的选择。...IE通常会白屏,Firefox等会其他浏览器会闪烁(逐步呈现)。...避免白屏和闪烁: @import url()会导致组件下载时的无序性,使用Link标签代理会带来性能上的收益; 如果样式表不是呈现页面所必需的,可以想办法再文档加载完后动态加载; 可视化回馈的重要性:(...当然,也可以使用Defferred(延迟)脚本(不包含document.write),浏览器获得这一信息后可继续呈现和下载。...这很可能导致页面死掉,不得不终止进程。 解决表达式重复求值 一次性表达式:可以在表达式执行过程中重写它自身。

    2.2K21

    Web 性能优化-首屏和白屏时间

    什么是首屏和白屏时间? 白屏时间是指浏览器从响应用户输入网址地址,到浏览器开始显示内容的时间。 首屏时间是指浏览器从响应用户输入网络地址,到首屏内容渲染完成的时间。...白屏时间 = 地址栏输入网址后回车 - 浏览器出现第一个元素 首屏时间 = 地址栏输入网址后回车 - 浏览器第一屏渲染完成 影响白屏时间的因素:网络,服务端性能,前端页面结构设计。...影响首屏时间的因素:白屏时间,资源下载执行时间。...-- 首屏不可见内容 --> (2) 统计首屏内加载最慢的图片/iframe 通常首屏内容中加载最慢的就是图片或者 iframe...资源,因此可以理解为当图片或者 iframe 都加载出来了,首屏肯定已经完成了。

    3.1K22

    将微前端做到极致-无界方案

    微前端已经是一个非常成熟的领域了,但开发者不管采用哪个现有方案,在适配成本、样式隔离、运行性能、页面白屏、子应用通信、子应用保活、多应用激活、vite 框架支持、应用共享等用户核心诉求都或存在问题,或无法提供支持...本文提供一种基于 iframe 的全新微前端方案,完善的解决了这些核心诉求。...无界方案 无界微前端方案基于 webcomponent 容器 + iframe 沙箱,能够完善的解决适配成本、样式隔离、运行性能、页面白屏、子应用通信、子应用保活、多应用激活、vite 框架支持、应用共享等用户的核心诉求...首屏打开快 目前大部分微前端只能做到静态资源预加载,但是就算子应用所有资源都预加载完毕,等到子应用打开时页面仍然有不短的白屏时间,这部分白屏时间主要是子应用 js 的解析和执行。...with 语句执行子应用代码而导致的性能下降,整体的运行性能和原生性能差别不大。

    3K20

    【微前端】1443- 将微前端做到极致-无界方案

    微前端已经是一个非常成熟的领域了,但开发者不管采用哪个现有方案,在适配成本、样式隔离、运行性能、页面白屏、子应用通信、子应用保活、多应用激活、vite 框架支持、应用共享等用户核心诉求都或存在问题,...本文提供一种基于 iframe 的全新微前端方案,完善的解决了这些核心诉求。...无界方案 无界微前端方案基于 webcomponent 容器 + iframe 沙箱,能够完善的解决适配成本、样式隔离、运行性能、页面白屏、子应用通信、子应用保活、多应用激活、vite 框架支持、应用共享等用户的核心诉求...首屏打开快 目前大部分微前端只能做到静态资源预加载,但是就算子应用所有资源都预加载完毕,等到子应用打开时页面仍然有不短的白屏时间,这部分白屏时间主要是子应用 js 的解析和执行。...with 语句执行子应用代码而导致的性能下降,整体的运行性能和原生性能差别不大。

    5.5K32

    被网页挂马攻击的几个要素_网站挂马检测工具箱书籍

    框架挂马 iframe src=http://www.trojan.com/ width=0 height=0>iframe> 该段代码会在网页中创建一个宽度和高度都为0的框架,并在框架中访问http...window.location=' http://www.trojan.com/';"> 当用户访问挂有以上代码的网页时,页面就会自动跳转去执行http://www.trojan.com/的页面,从而导致挂在...针对document.write、eval类具有代码执行功能的函数或方法,我们就可以使用上述简单处理方式实现对明文代码的查看。...PDF文件网马 PDF网马是将恶意Javascript代码通过压缩处理的方式以数据流的形式存储在PDF文件中,当客户端浏览PDF文件时,文件中包含的Javascript恶意代码就可以执行,进而导致用户受到恶意代码攻击...混淆 现在的网马都不会简单的iframe引入,一般会使用混淆的语句或者比较复杂的javascript动态生成网马地址,试图绕过检测,比如: document.write(“<ifra”+“mesrc=http

    3.6K20

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

    这里主要场景是 iframe 跨域的情况,不同域名的 iframe 是限制互相访问的。 XMLHttpRequest 同源策略:禁止使用 XHR 对象向不同源的服务器地址发起 HTTP 请求。...5. document.write和innerHTML有什么区别 document.write是直接写入到页面的内容流,如果在写之前没有调用document.open, 浏览器会自动调用open。...每次写完关闭之后重新调用该函数,会导致页面被重写。 innerHTML则是DOM页面元素的一个属性,代表该元素的html内容。你可以精确到某一个具体的元素来进行更改。...innerHTML将内容写入某个DOM节点,不会导致页面全部重绘 innerHTML很多情况下都优于document.write,其原因在于其允许更精确的控制要刷新页面的那一个部分。 6.

    13110

    【前端安全】JavaScript防http劫持与XSS

    DNS劫持 DNS 劫持就是通过劫持了 DNS 服务器,通过某些手段取得某域名的解析记录控制权,进而修改此域名的解析结果,导致对该域名的访问由原IP地址转入到修改后的指定IP,其结果就是对特定的网址不能访问或访问的是假网址...iframe 页面进行监控, * 防止调用内部原生 setAttribute 及 document.write * @return {[type]} [description] */ function...document.write 是一个很不错选择,注入攻击者,通常会使用这个方法,往页面上注入一些弹窗广告。 我们可以重写 document.write ,使用关键词黑名单对内容进行匹配。... 传入的内容进行正则判断,就能确定是否要拦截document.write 这段代码。 ...环境内的 document.write 进行重写了。

    3.6K40
    领券