在一个页面内实现在新标签页打开链接有什么利弊?

2023-08-05 09:50:35 +08:00
 shendaowu

用中键点击链接以让链接在新标签页打开我用的挺频繁的,但是感觉这种模式好像有点弊端,所以就想了一下在一个页面内实现在新标签页打开的功能。

我能想到的弊端:开发麻烦、用户理解困难。

我能想到的好处:减轻服务器负担、加快页面加载。这两个我都不太确定,我用我浅薄的知识思考了一下感觉应该能有这种效果。特别是如果页面很复杂,而新页面变化的内容很少。

我之前好像完全没见过这种东西,但是感觉应该是挺好想到的,没人做是不是有什么难以忽视的缺陷?我搜了一下也没搜到。

1554 次点击
所在节点    前端开发
15 条回复
ershierdu
2023-08-05 10:16:29 +08:00
op 的意思是百度那样单击搜索结果后在新标签打开网页的效果?我不懂前端,不过这应该是很基础的功能吧,改个 HTML 标签的事?

至于在当前标签打开,好处之一是可以流畅地使用返回手势
swulling
2023-08-05 10:29:39 +08:00
这也不是一个技术问题,不就是加一个 `target="_blank"`么。

这是一个产品问题,关键是你的业务逻辑适不适合。
shendaowu
2023-08-05 10:32:11 +08:00
@ershierdu #1

我担忧的果然来了,就是我没说明白。

刚才又在 GitHub 搜了一下“tab manager”。搜到个 demo: https://rawgit.com/caplin/FlexLayout/demos/demos/v0.7/demo/index.html 。大概就是这个感觉,如果你在这个页面的标签页里中键点击了一个链接,会在这个页面内新建一个标签页,而不是新建一个浏览器的标签页。
shendaowu
2023-08-05 10:36:35 +08:00
@swulling #2 怪我没说明白。你说的这个我知道,你这个是在浏览器的新标签页打开,我想实现的是在页面内的标签页里打开。看我三楼的回复。
shendaowu
2023-08-05 10:41:08 +08:00
@shendaowu #3 我又没说明白。三楼提到的那个 demo 没实现我在三楼说的那种点击链接在页面内得标签页里打开的效果,我说的是我想的效果。
wusheng0
2023-08-05 10:45:14 +08:00
自己模拟浏览器标签?

>减轻服务器负担、加快页面加载。

应该效果一般,静态文件有缓存的,动态数据还是免不了。

后台管理其实有那种导航和这个类似。

不这么做还是成本问题,业务需求上没必要,普通标签对用户和开发都友好。
shelken
2023-08-05 10:46:48 +08:00
就是在一个页面打开的页面就在这个页面,但是还是分标签的。这种也挺常见吧?唯一区别就是保留不保留上个菜单项的页面,还是从需求出发
ershierdu
2023-08-05 10:47:30 +08:00
@shendaowu 这个网页加载不出来,不过听着有点像 iPhone Safari 长按(准确来说是按压,不过现在没有 3D touch 了,所以这个交互变成长按)链接后 pop 出来的预览图,再点击一下可以直接进入。我觉得类似的功能需要浏览器的支持才能获得比较好的体验,例如 iPhone 这个,把预览图打开成普通标签页是不需要重新加载的,没有浏览器支持的话应该不好做?
ershierdu
2023-08-05 10:50:03 +08:00
@ershierdu 网页打开了,看来我又理解错了……如果只是单纯地模拟标签,我觉得不仅给自己的开发和维护增加了难度,还一定程度上破坏了跟规范的兼容性
shantongxu
2023-08-05 10:53:58 +08:00
op 指的是类似后台管理系统那样多 tab 页吧
从技术上来看, 在以前的 iframe 年代没有难度, 但是现在普遍用的 react ,vue 等,vue 的话有 keep-alive 标签还好实现一点,react 因为没有官方的 keep-alive 所以实现起来就比较困难, 但是也不是不能实现
所以综合来说,2 楼说的对 这不是一个技术问题, 这是一个产品问题
IvanLi127
2023-08-05 12:51:56 +08:00
这个很常见吧,至少上古的管理系统好像都喜欢这么干,不知道和 ie 当时不支持多标签有没有关系。。。这功能现在看来没啥用啊,把浏览器能做的事情再做一遍,还要维护,怎么想都不划算呐。
Colemei
2023-08-05 12:57:12 +08:00
提供一种新逻辑,参考 Arc 浏览器给出的解决方案,click 之后出现的是一个独立于当前浏览器窗口之外的临时小窗
Little Arc is a smaller, simpler Arc window. It's perfect for quick
lookups and reading funny tweets your friends send you.
DOLLOR
2023-08-05 13:30:21 +08:00
这种“模拟 tab”的交互,我是能不做就不做的。
因为会增加很多开发负担,也不会给用户体验有多少提升。
比如被切换到后台的 tab 内容要保留还是销毁,如何处理重复标签,如何同步各标签页的状态等等
darkengine
2023-08-05 20:55:22 +08:00
如果浏览器一级已经打开多个标签, 标签加载的页面里还有一堆子标签, 要找某个子标签的时候就非常麻烦, 要挨个标签切进去看.
zycxtbl4324
2023-08-18 15:41:40 +08:00
这种产品一般只在 toB 的项目上出现,你肯定见不到,toB 产品有很多需求必须这样实现,多页面缓存,因为有的流程需要多页面操作

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/962566

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX