V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
shendaowu
V2EX  ›  前端开发

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

  •  
  •   shendaowu · 2023-08-05 09:50:35 +08:00 · 1554 次点击
    这是一个创建于 506 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

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

    这是一个产品问题,关键是你的业务逻辑适不适合。
    shendaowu
        3
    shendaowu  
    OP
       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
        4
    shendaowu  
    OP
       2023-08-05 10:36:35 +08:00
    @swulling #2 怪我没说明白。你说的这个我知道,你这个是在浏览器的新标签页打开,我想实现的是在页面内的标签页里打开。看我三楼的回复。
    shendaowu
        5
    shendaowu  
    OP
       2023-08-05 10:41:08 +08:00
    @shendaowu #3 我又没说明白。三楼提到的那个 demo 没实现我在三楼说的那种点击链接在页面内得标签页里打开的效果,我说的是我想的效果。
    wusheng0
        6
    wusheng0  
       2023-08-05 10:45:14 +08:00 via Android
    自己模拟浏览器标签?

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

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

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

    不这么做还是成本问题,业务需求上没必要,普通标签对用户和开发都友好。
    shelken
        7
    shelken  
       2023-08-05 10:46:48 +08:00
    就是在一个页面打开的页面就在这个页面,但是还是分标签的。这种也挺常见吧?唯一区别就是保留不保留上个菜单项的页面,还是从需求出发
    ershierdu
        8
    ershierdu  
       2023-08-05 10:47:30 +08:00
    @shendaowu 这个网页加载不出来,不过听着有点像 iPhone Safari 长按(准确来说是按压,不过现在没有 3D touch 了,所以这个交互变成长按)链接后 pop 出来的预览图,再点击一下可以直接进入。我觉得类似的功能需要浏览器的支持才能获得比较好的体验,例如 iPhone 这个,把预览图打开成普通标签页是不需要重新加载的,没有浏览器支持的话应该不好做?
    ershierdu
        9
    ershierdu  
       2023-08-05 10:50:03 +08:00
    @ershierdu 网页打开了,看来我又理解错了……如果只是单纯地模拟标签,我觉得不仅给自己的开发和维护增加了难度,还一定程度上破坏了跟规范的兼容性
    shantongxu
        10
    shantongxu  
       2023-08-05 10:53:58 +08:00   ❤️ 1
    op 指的是类似后台管理系统那样多 tab 页吧
    从技术上来看, 在以前的 iframe 年代没有难度, 但是现在普遍用的 react ,vue 等,vue 的话有 keep-alive 标签还好实现一点,react 因为没有官方的 keep-alive 所以实现起来就比较困难, 但是也不是不能实现
    所以综合来说,2 楼说的对 这不是一个技术问题, 这是一个产品问题
    IvanLi127
        11
    IvanLi127  
       2023-08-05 12:51:56 +08:00 via Android
    这个很常见吧,至少上古的管理系统好像都喜欢这么干,不知道和 ie 当时不支持多标签有没有关系。。。这功能现在看来没啥用啊,把浏览器能做的事情再做一遍,还要维护,怎么想都不划算呐。
    Colemei
        12
    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
        13
    DOLLOR  
       2023-08-05 13:30:21 +08:00 via Android   ❤️ 3
    这种“模拟 tab”的交互,我是能不做就不做的。
    因为会增加很多开发负担,也不会给用户体验有多少提升。
    比如被切换到后台的 tab 内容要保留还是销毁,如何处理重复标签,如何同步各标签页的状态等等
    darkengine
        14
    darkengine  
       2023-08-05 20:55:22 +08:00
    如果浏览器一级已经打开多个标签, 标签加载的页面里还有一堆子标签, 要找某个子标签的时候就非常麻烦, 要挨个标签切进去看.
    zycxtbl4324
        15
    zycxtbl4324  
       2023-08-18 15:41:40 +08:00
    这种产品一般只在 toB 的项目上出现,你肯定见不到,toB 产品有很多需求必须这样实现,多页面缓存,因为有的流程需要多页面操作
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1298 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 17:37 · PVG 01:37 · LAX 09:37 · JFK 12:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.