如题 感觉进去了可能就是 维护老项目了 像是要回到 jquery 的时代了
![]() | 1 a62527776a 2021-02-05 11:29:02 +08:00 ![]() 就说不知道 |
![]() | 2 christin 2021-02-05 11:29:22 +08:00 via iPhone 不一定吧 之前一个字节的面试也问这个了 可能考察基本功 |
3 a87586179 2021-02-05 11:36:58 +08:00 iframe 是 H5 才支持的,哪里老了 |
![]() | 4 Pastsong 2021-02-05 11:37:34 +08:00 现在最流行的微前端可是用 iframe 实现的哦(一种方案) |
5 airfling 2021-02-05 11:42:09 +08:00 jquery 其实也没啥不好 |
6 morethansean 2021-02-05 11:44:57 +08:00 ![]() 又不是让你适配 IE6,复杂业务场景里面 iframe 是再常见得不过的解决方案了,倒是好奇你为什么觉得 iframe 是一种类似 jquery 的遗留技术? jquery 是因为 web 应用场景的变化再加上更优秀的替代品,那面试官反问一句一般 iframe 都用在什么场景?不用 iframe 是现在有了什么更好的方案解决了这些场景问题? |
![]() |   7 llb123 2021-02-05 11:52:35 +08:00 ls + 1 |
![]() | 8 musi 2021-02-05 12:20:36 +08:00 via iPhone 现在有很多场景都是 iframe 吧? iframe 也是微前端的一种方案,某些网站登录也都是 iframe,怎么就老项目了?也没有最佳实践说不用 iframe 吧? lz 真的是做前端的么。。。 |
![]() | 9 JoStar 2021-02-05 12:22:54 +08:00 最近微前端还算热门,讨论这个就势必会扯到 iframe,很正常。 |
![]() | 10 yulitian888 2021-02-05 12:33:31 +08:00 ![]() @a87586179 怕不是打算笑死大家?二十年前我用 IE 4的时候就已经在写Iframe了好吧 |
![]() | 11 yulitian888 2021-02-05 12:38:08 +08:00 ![]() 正经说一下楼主的问题,赶紧逃吧! 倒不是因为这个知识点有什么历史问题,而是这个问题的问法大有问题。 如果是我的团队确实需要用iframe,我会选择这样问:“在xxx场景下,需要处理yyy问题,你觉得可选的方式有哪些?”、或者是“现有一个iframe,实现xxx效果。期待加上yyy效果时怎么做” 区别在哪儿呢? 问优缺点这种说辞,太像培训班老师做的事情了。招聘团队的实际情况极可能比技术陈旧更糟糕。 |
![]() | 12 iugo 2021-02-05 12:40:47 +08:00 微前端? 这不是 2019 年的话题吗? 我记得 React 开发者还专门发推 “嘲讽” 来着 https://twitter.com/dan_abramov/status/1132493678730252288 (当然, 一方面不是真的嘲讽只是发表看法, 另一方面, Dan 肯定希望大家统一都用 React 啊) |
![]() | 13 ericgui 2021-02-05 12:43:38 +08:00 iframe 有自己的优点,在有些情境下非常有用 |
![]() | 14 楼上说微前端用 iframe 的 上次听这种方式把不同项目合在一起的时候拜占庭才灭亡没多久 |
![]() | 15 KuroNekoFan 2021-02-05 12:48:29 +08:00 via iPhone 用 iframe 一般是因为前期规划的比较烂,又没有迁移的实际方案 说快逃我觉得没毛病 |
![]() | 16 Martox 2021-02-05 12:50:13 +08:00 hh 上面一堆说快逃,有点笑到我了。 |
![]() | 17 veike 2021-02-05 12:50:56 +08:00 via Android 视频分享播放用的就是 iframe |
![]() | 18 rodrick 2021-02-05 12:51:17 +08:00 所以有哪些优缺点? SEO 不友好,阻塞 onload,可以 postmessage 跨域交互? |
![]() | 19 ETiV 2021-02-05 13:19:16 +08:00 是不会 jQuery 才这么怕的吗? |
![]() | 20 musi 2021-02-05 13:20:15 +08:00 @iugo React 开发者当然希望 React 一统天下,毕竟直接和他利益相关,可事实是不管有什么乱七八糟的原因,前端的技术栈一直是多种多样的,毕竟前端娱乐圈的称号可不是白叫的 |
![]() | 21 hahastudio 2021-02-05 13:25:12 +08:00 那完了,AWS Twitter Facebook 都有用到 iframe 虽然我也觉得国内的公司用 iframe 的多半有坑,但一棍子打死 iframe 也不是什么好想法 |
![]() | 22 arslion 2021-02-05 13:32:55 +08:00 碰见过让我背 ES5 的 |
23 kinghly 2021-02-05 13:39:38 +08:00 via Android 老实讲,去哪都会有屎坑的 |
25 qqai 2021-02-05 13:47:06 +08:00 项目用啥到无所谓,写出优雅的代码才是工程师重要的技能 |
![]() | 26 xrr2016 2021-02-05 13:50:12 +08:00 iframe 不就是一个 HTML 元素嘛为什么要逃,少见多怪? |
![]() | 27 KuroNekoFan 2021-02-05 13:51:38 +08:00 via iPhone @qqai 是这样,然后常规业务代码如果用了 iframe,一定不优雅 就好比我写 react,一个劲的导出方法给父组件 |
![]() | 28 xudong 2021-02-05 14:00:04 +08:00 via iPhone ![]() iframe 也是有很多优势的,可以看下 zoid 这个库。PayPal 的支付按钮就是用这个做的,特别适合需要嵌入到页面上的通用挂件开发,隔离 JS 运行环境,防止样式冲突。 |
29 hbolive 2021-02-05 14:15:12 +08:00 我搽,看你们摆出这么多高大上术语,吓得我赶紧又去查了一下啥叫 iframe 。。 |
![]() | 30 no1xsyzy 2021-02-05 14:21:56 +08:00 ![]() @a87586179 好吓人哦 https://www.w3.org/TR/html401/present/frames.html#h-16.5 @hahastudio 补充:那完了,V2 放 youtube 链接会出 iframe,快别用 V2 了( 我相信老项目用的该是 frameset ( 这种模式下,甚至没有 <body>,<html><head>...</head><frameset>...</frameset></html> 不然你以为为什么有 <body> 标签?直接放 <html> 里面不香吗?<head> 里面的东西不都是默认没有显示能力的吗? |
31 zhuweiyou 2021-02-05 14:31:40 +08:00 先搞清楚 frame 和 iframe 再来提问 |
![]() | 33 LiuJiang 2021-02-05 14:38:08 +08:00 不一定,看项目模式,我司现在技术栈 react + mobx + antd,也有很多项目用 iframe 嵌在主应用上。 |
![]() | 34 SakuraKuma 2021-02-05 14:38:14 +08:00 前阵子才在外包看见 frameset 。。。 iframe 挺常用的,问题不大 |
![]() | 35 finalwave 2021-02-05 14:44:05 +08:00 iframe 又不是不能用。JD 上写面试会问 ie7 某个特性的公司才离谱呢,真有傻子会上当吗。 |
36 zzsyq1009 2021-02-05 15:10:10 +08:00 看业务场景 某些功能 iframe 会很有优势 |
37 wee911 2021-02-05 15:35:30 +08:00 你这种水平就应该赶紧滚 |
38 wee911 2021-02-05 15:36:05 +08:00 前端大多数水平确实低 |
![]() | 39 luruitao 2021-02-05 15:38:51 +08:00 iframe 场景非常多,并不是一个过时的技术。 |
![]() | 40 Elethom 2021-02-05 15:39:13 +08:00 via iPhone 能发出这种主题可能确实不太适合这个岗位。 |
![]() | 41 danhahaha 2021-02-05 15:54:01 +08:00 iframe 可是神器,不管什么陈年老项目,套进去就 ok,尤其给那些小白又自以为是的老板看最合适了 |
![]() | 42 alexfarm 2021-02-05 16:00:58 +08:00 之前做了一个页面搭建工具,被各种业务系统 iframe 嵌入。能实现业务价值,技术其实并不重要 |
43 tangzui 2021-02-05 16:04:07 +08:00 iframe 为啥不能用 |
44 connection 2021-02-05 16:11:56 +08:00 我觉得其实没问题。因为它确实能低成本地解决一些问题。 |
![]() | 45 xuhai951753 2021-02-05 16:14:49 +08:00 ![]() iframe 很常用啊。尤其是跨系统的功能组合的时候。 |
![]() | 46 wxw752 2021-02-05 16:19:08 +08:00 前天刚用了 iframe |
47 sbmzhcn 2021-02-05 16:23:26 +08:00 我见到的在线聊天商务通代码都会使用 iframe,防止样式干扰等。 |
![]() | 48 jymsy 2021-02-05 16:34:57 +08:00 用过 codesandbox 么? |
50 a87586179 2021-02-05 16:40:02 +08:00 @yulitian888 请你搞清楚 frame 和 iframe 再跟我聊 |
51 thtznet 2021-02-05 16:46:15 +08:00 作为一个写过 COM 组件的程序员,我说一个 IT 业界的实际情况:创新的难度其实小于兼容老项目保证业务不中断的情况下进行平滑过渡的难度,可以参考下业界兼容性最牛逼的操作系统。 |
![]() | 52 young1lin 2021-02-05 16:50:46 +08:00 作为一个后端,我觉得 jQuery 没什么不好啊(当然只是作为后端认为),而且 iframe 不是“新”东西吗? Youtube 的复制嵌入信息都是 iframe 呢。 |
![]() | 53 yulitian888 2021-02-05 16:54:46 +08:00 ![]() |
54 boringdays2015 2021-02-05 16:58:15 +08:00 @young1lin jq ?复制粘贴一时爽,后期维护火葬场 |
55 a87586179 2021-02-05 17:00:26 +08:00 ![]() @yulitian888 哎,楼主明显连 frame 和 iframe 都没搞清楚啊..不打算和你杠 |
56 a87586179 2021-02-05 17:03:21 +08:00 @yulitian888 他想的估计是 frameset 这种老语法 |
57 dremy 2021-02-05 17:09:24 +08:00 via iPhone iframe 能做 dom/js/css 环境隔离,足以满足微前端 /微应用的基本要求 |
![]() | 58 zhaol 2021-02-05 17:28:33 +08:00 把不同的框架的代码整合到一个系统,用 iframe 不是很好用吗? |
![]() | 59 seki 2021-02-05 17:39:37 +08:00 iframe 在很多地方还是有需要的,比如对于安全标准很高的场景,没有办法跨域的话就只能 iframe 了 |
60 catch 2021-02-05 17:40:32 +08:00 月薪给够+年终有 6~10 个月,随便你多烂多老的项目,我照样混 |
![]() | 61 rioshikelong121 2021-02-05 18:12:53 +08:00 iframe 其实玩法很多的。。 |
![]() | 62 rioshikelong121 2021-02-05 18:13:54 +08:00 尤其是各种系统集成的时候,当然也是微前端的一种实现方案。 |
![]() | 63 yulitian888 2021-02-05 18:36:12 +08:00 @a87586179 大家快来乐呵乐呵啊!现已加入“我比楼主更懂楼主”大礼包,抓紧乐呵哦! |
![]() | 64 young1lin 2021-02-05 19:34:13 +08:00 @boringdays2015 没有啊,我之前第一份工作就是用 MiniUI,用 jQuery 包装的,那个其实算是组件化开发了,代码少,很多东西都是二次渲染的,也是 jQuery 语法,适合做表格的页面。 |
65 hantsy 2021-02-05 20:01:13 +08:00 YT, SoundCloud 等 API 不是使用 Iframe 吗?除了这个方面,其他应该少见。 |
![]() | 66 learningman 2021-02-05 20:27:43 +08:00 @xudong 对啊,也只有这种要到处贴的需要 iframe,实际上要不是浏览器支持,svg 更适合做这个,svg 里面也能写 html 写 css 的 |
![]() | 67 DualWield 2021-02-05 20:30:05 +08:00 iframe 的功能挺强大的,有很多你没有见过的业务场景,可以用 iframe 来完成。你没见过,不代表用 iframe 就有问题 |
69 billlee 2021-02-05 21:17:31 +08:00 @yulitian888 #11 问优缺点也有可能是面试官水平不行,我以前也问过类似的问题,就是不知道要说什么,快聊不下去了。。 |
![]() | 70 no1xsyzy 2021-02-06 00:24:49 +08:00 |
![]() | 71 phithon 2021-02-06 01:40:52 +08:00 其他优点不知道,但是 iframe 构造的沙箱是很有用的,这个属性也是 HTML5 才有的。不要有偏见。 |
![]() | 72 Chingim 2021-02-06 01:46:00 +08:00 via iPhone 没遇到一定复杂的系统,是不会知道 iframe 的好处的 |
![]() | 73 Chingim 2021-02-06 01:54:43 +08:00 via iPhone iframe 特别适合搞动态下发的东西 |
![]() | 74 akira 2021-02-06 02:16:07 +08:00 iframe 有啥缺点是要逃么 |
![]() | 75 GG668v26Fd55CP5W 2021-02-06 07:39:05 +08:00 via iPhone ![]() 这有什么问题,互联网最赚钱的项目广告大多数就是用 iframe 嵌套进来的 |
![]() | 77 DT27 2021-02-06 10:00:54 +08:00 真的希望前端界能安宁点。。。 |
78 zhangjiafan 2021-02-06 10:06:10 +08:00 啥都不说,就问一句,如果你要做一套 sdk,包含登陆支付,走的是自己域名。 提供给第三方使用,第三方使用的是自己的域名和 h5 游戏,不用 iframe,有什么其他更好的全适配解决方案?不要学了几个什么 vuexxxxxxxx 框架就把其他给忘了啊 |
![]() | 79 x86 2021-02-06 10:07:00 +08:00 via iPhone ![]() 前端娱乐圈又开始了 |
80 tony1890 2021-02-06 10:09:04 +08:00 ![]() 我们公司就是 壳 + iframe 的形式。 一个登录壳管理 n 个子系统。你不可能把所有的子系统代码放一个项目里,所以只能用壳管理各个子系统和菜单。这样,不管是别人要用我们的子系统还是我们要添加别人的子系统都方便。 子系统和壳之间通过 postMessage 进行通信。这样可以实现子系统 token 过期壳自动退出。 |
![]() | 82 towry 2021-02-06 11:27:08 +08:00 人家问你技术问题,考验你的经验,思维能力。 你们上升到是不是要维护老项目的问题上,真是牛逼。 假如你有那个顾虑,可以在最后面直接问,不要不会答也不会问,那真是牛逼 坏了。 |
![]() | 83 drupal 2021-02-06 11:28:09 +08:00 ![]() @catch 一个混字,就可以看出一个人的格局。你的能力有多大,自然收入就有多高,当你愿意进那公司,就意味着你已经接收那份待遇,至于后续个人能走多远,取决于你的 IQ 和 EQ 。 送给你一个忠告:做事就是做人。 |
90 i4color 2021-02-06 16:46:11 +08:00 楼主做的系统肯定都很简单。所以才会这么想。 |
![]() | 93 meepo3927 2021-02-07 09:06:43 +08:00 iframe 还是有用的 ,比如 不同厂家合作会比较方便。 iframe 不等于回到 jquery 时代吧, 感觉是过度解读。 |