网页打开:为什么国内用新标签页,国外用当前页?
想写这个话题很久了,因为用百度和Google搜索时,打开搜索结果链接时的交互差异,几乎每天都要提醍我一下。
网页打开——这个交互,在设计里,算是极微小,但影响极广泛的操作设计。甚至,因此形成了东、西方不同的交互设计原则和不同的用户体验标准。
以“百度”和“Google”搜索为例
按照产品的交互设计,做为用户,我们的操作过程是这样的:
1、输入关输字——2、查看搜索结果——3、打开某结果链接——4、浏览某结果链接页
第3步交互时,百度打开链接和Google的方式差别,如下图:

这个差异,不只出现在“百度”和“Google”这两个产品中,几乎大部分的国内和西方的产品中,都存在这个设计差异。
接下来,就让“百度”和“Google”各自说说:它们打开结果页链接时,用不同页面的原因吧:
首先“百度兄”先来

1、在新标签页打开,用户不容易彻底跳出百度(即关闭了所有与该网站相关的页面)。
用户查找信息时,在搜索页寻找内容后点击,新窗口弹出页面,看完关闭,然后返回搜索页继续寻找。这样交互方式让百度搜索页面一直保持在窗口,用户不容易彻底离开。
2、中国用户己经习惯用“新标签页”打开页面的方式
中国人有着中国人的生活方式,中国网民这么多年己经养成了这种浏览方式,即:更习惯关闭当前页而非后退的操作。
3、为了获得好的搜索排名,迎合爬虫对网站数据的综合评判,网站开发者让网站链接在新窗口打开,可以让运营指标更好看。
站长们想增加网站的PV(页面浏览量),常用的做法是:
在“导航、内链、锚文本、超链接”,加空白跳转<a href="/" target="_blank">
这样,不但同样一个IP(IP地址),可以获得2+以上的PV;还可以增加页面浏览量、增加页面停留时长、降低页面跳出率。
4、返回重载太麻烦
在搜索页跳转,看完要按返回键,再回到搜索页,重载花时间还浪费流量,而且还不一定返回到原来的地方。
要是是使用付费流量(如手机流量套餐),会造成多余的流量消耗。
5、可以应对网速太慢时的操作
以前用ISDN和ADSL拨号上网,网速很慢,现在有的地方网速也不快。等网站打开界面太无聊,可以一次性打开多个界面,一边看网页的同时,后台慢慢帮着传送别的网页。
接下来到“Google”了

1、在当前页打开,用户的浏览路径清晰,更专注。
我(西方)的用户体验认为:
不要随便开新标签,影响体验。
因为在一个标签页内浏览,能够维持一个固定的历史线,方便用浏览器内建的后退前进功能回溯浏览历史。
跟踪链接,这对于用户来说是必要的。
2、让用户自己做出决定。
有些用户喜欢在新标签打开每个链接。有些更喜欢在同一个窗口中前进和后退浏览,而有些用户可能不知道如何在窗口或标签之间切换。不同的用户应该让他们选择,按喜好操作。
-
用户点击鼠标左键,在当前页打开;
-
点击鼠标中间的滚轮或按住Ctrl+鼠标左键,在新标签页打开链接。
-
对必须默认用新标签打开的链接,在链接后加“箭头”标识,提醒用点击会开新标签,这是对用户操作的预先提醍。
3、我这里的用户,更习惯使用后退。
很多用户的鼠标,右手大拇指位置有两个按键,分别就是“前进”和“后退”,这样上网对他们来说,己经习惯了。
而且,早期的浏览器无法打开多个页面,打开新窗口就要启动一个浏览器,也让用“后退”这个习惯保持了下来。
4、减少电脑内存负担,节约服务器资源
满满的标签对计算机内存来说是负担。开多了,页面会反复报错。
默认当前页打开,用户在默认操作下不会同时打开多个网页,可以节约服务器资源
5、不需要对外链作特殊处理
我——谷歌,对用户点击的搜索结果指向的外链,不需要作大量的特殊技术处理。
而百度兄需要,百度在新标签页打开结果外链时,要先跳转到一个记录各种信息的缓冲页,然后才跳转到外链地址页。
百度的缓冲页链接:
![]()
我的搜索结果链接:
![]()
你更喜欢什么样的交互方式呢?
其实,一个看似很小的习惯养成,也是由各种因素合力完成的。
就像“打开界面”交互,之所以有不同操作方式,
-
有早期浏览器只能打开一个界面的原因;
-
也有类似BAT这些,国内外的大厂,最初进行设计时提出的各种特定交互方式对用户的影响和习惯养成的原因。
最终,构成了东西方,两类用户群体在“用户体验”上的公共认识差异和操作差异。
这种差异,如果想得再悬些,也许还涉及到不同文化群体的语言结构差异。
我们的文字是象形(表意)文字,这也形成了咱们国人的类比思维模式。类比的核心,再于事物间的关联性。
就像是八爪鱼,以身体为中点,可以有多个触角由身体衍生出去,不同的触角和身体都有某种不同的关系,触角再多,我们也不觉得乱。
就像在搜索页打开结果页时,搜索页是身体,我们可以由此,在窗口中打开很多相关的内容页,而不觉得繁杂,能够接受。
而西方的文字是表音文字,由字母构成的词,能大概能猜出读音,但没有含义表达。这和象形文字正好相反。
26个字母,要构成上千字,西方人用词根、词缀等各种语言逻辑组成了西方文字。
而西方的文字特点,也形成了他们逻辑思维模式。
而逻辑思维,注重的是思考的连贯性和一致性,在遵循这种逻辑规律的情况下:
在搜索页打开结果页时,在当前的搜索页面打开结果页,连贯性和一致性更符合他们的思维逻辑,在一条浏览线,“前进、后退”交互操作,也符合正向和逆向的逻辑多样性特点。
(“在当前页打开页面,更符合逻辑的一致性。”可不是我对老外的臆想,可看下面这篇文章,能代表西方交互设计师的主流看法)

相关文章:
网页打开:为什么国内用新标签页,国外用当前页?
想写这个话题很久了,因为用百度和Google搜索时,打开搜索结果链接时的交互差异,几乎每天都要提醍我一下。 网页打开——这个交互,在设计里,算是极微小,但影响极广泛的操作设计。甚至,因此形成了…...
用户运营4大核心(C端版)
1、用户运营是什么 产品好比歌手,运营好比经纪公司,运营就是让一个有潜质的产品,从“草根”发展成“明星”!C端用户的产品忠诚度不高,用户运营更要维护好“粉丝”关系,从“单向的吸引”发展成“双向的进步…...
SBM模型、超效率SBM模型代码及案例数据(补充操作视频)
01、数据简介 SBM(Slack-Based Measure)模型是一种数据包络分析(Data Envelopment Analysis, DEA)的方法,用于评估决策单元(Decision Making Units, DMUs)的效率。而超效率SBM模型是对SBM模型的…...
C#知识|上位机子窗体嵌入主窗体方法(实例)
哈喽,你好啊,我是雷工! 上位机开发中,经常会需要将子窗体嵌入到主窗体, 本节练习C#中在主窗体的某个容器中打开子窗体的方法。 01 需求说明 本节练习将【账号管理】子窗体在主窗体的panelMain容器中打开。 账号管理子窗体如下: 主窗体的panelMain容器位置如图: 02 实现…...
【汇编】算术指令
一、加法指令 (一)各加法指令的格式及操作 加法指令可做字或字节运算 (1)加法指令 ADD 格式:ADD DST,SRC执行的操作:(DST) ← (SRC)(DST) (2)带进位加法指令 ADC 格式…...
如何知晓自己手机使用状况-入网时长
手机入网时长查询的重要性 在当今的数字化时代,手机已经成为我们日常生活中不可或缺的一部分。从通讯、娱乐到工作,手机几乎涵盖了生活的各个方面。而在手机使用过程中,了解手机的入网时长信息显得尤为重要。本文将深入探讨手机入网时长查询…...
机器学习 - 决策树
1. 决策树基础 定义与概念 决策树是一种监督学习算法,主要用于分类和回归任务。它通过学习从数据特征到输出标签的映射规则,构建一个树形结构。在分类问题中,决策树的每个叶节点代表一个类别。 案例分析 假设我们有一个关于天气和是否进行…...
【scikit-learn007】主成分分析(Principal Component Analysis, PCA)ML模型实战及经验总结(更新中)
1.一直以来想写下基于scikit-learn训练AI算法的系列文章,作为较火的机器学习框架,也是日常项目开发中常用的一款工具,最近刚好挤时间梳理、总结下这块儿的知识体系。 2.熟悉、梳理、总结下scikit-learn框架主成分分析(Principal C…...
还在花钱订购SSL证书吗?out啦!
SSL(Secure Sockets Layer)证书,以及其后续版本TLS(Transport Layer Security)证书,扮演了保护用户数据免遭窃听和篡改的核心角色。这些证书能够确保数据在客户端与服务器之间传输时的加密性与完整性&#…...
【GoLang基础】函数体的注意事项和细节讨论
在 Go 语言(Golang)中,函数是程序的基本构建块之一。理解函数的定义和使用是掌握 Go 语言的重要步骤。下面是关于 Go 语言中函数体的详细解释,包括函数的定义、参数传递、返回值以及闭包等方面。 1. 函数的定义 在 Go 语言中&am…...
YOLOv8训练流程-原理解析[目标检测理论篇]
关于YOLOv8的主干网络在YOLOv8网络结构介绍-CSDN博客介绍了,为了更好地学习本章内容,建议先去看预测流程的原理分析YOLOv8原理解析[目标检测理论篇]-CSDN博客,再次把YOLOv8网络结构图放在这里,方便随时查看。 1.前言 YOLOv8训练…...
实战使用Java代码操作Redis
实战使用Java代码操作Redis 1. 背景说明2. 单连接方式3. 连接池方式1. 背景说明 在工作中, 如果有一批数据需要初始化, 最方便的方法是使用代码操作Redis进行初始化。 Redis提供了多种语言的API交互方式, 这里以Java代码为例进行分析。 使用Java代码操作 Redis 需要借助…...
微信小程序之九宫格抽奖
1.实现效果 2. 实现步骤 话不多说,直接上代码 /**index.wxml*/ <view class"table-list flex fcc fwrap"><block wx:for"{{tableList}}" wx:key"id"><view class"table-item btn fcc {{isTurnOver?:grayscale…...
车牌检测识别功能实现(pyqt)
在本专题前面相关博客中已经讲述了 pyqt + yolo + lprnet 实现的车牌检测识别功能。带qt界面的。 本博文将结合前面训练好的模型来实现车牌的检测与识别。并用pyqt实现界面。最终通过检测车牌检测识别功能。 1)、通过pyqt5设计界面 ui文件如下: <?xml version="1…...
工业派-配置Intel神经计算棒二代(NCS2)
最近两天在工业派ubuntu16.04上配置了Intel神经计算棒二代——Intel Neural Compute Stick,配置过程之艰辛我都不想说了,实在是太折磨人。不过历尽千辛万苦,总算让计算棒可以在工业派ubuntu16.04系统上跑了,还是蛮欣慰的。 注&…...
深度学习中常见的九种交叉验证方法汇总
目录 1. K折交叉验证(K-fold cross-validation) 2. 分层K折交叉验证(Stratified K-fold cross-validation) 3. 时间序列交叉验证(Time Series Split) 4. 留一交叉验证(Leave-One-Out Cross-…...
企业建网站流程
企业建网站是一个复杂而繁琐的过程,需要根据企业的需求和目标进行规划、设计、开发和运营。以下是企业建网站的一般流程,主要包括以下几个步骤: 第一步:需求分析 企业建网站的第一步是进行需求分析。这个过程需要与企业负责人和相…...
Laravel通过phpSpreadsheet合并excel
背景 最近有一个需求,需要将所有excel文件的sheet合并到一个文件。 目前我们处理表格使用的是xlswriter这个插件,对于数据量比较大的话非常好用。...
CTF网络安全大赛web题目:just_sqli
这道题目是bugku的web题目 题目的 描 述: KosenCTF{} 原文链接: CTF网络安全大赛web题目:just_sqli - 红客网-网络安全与渗透技术 题目Web源代码: <?php$user NULL; $is_admin 0;if (isset($_GET["source"])) {highlig…...
Java入门基础学习笔记27——生成随机数
Random的使用:生成随机数。 随机数应用: 随机点名: 年会抽奖: 猜数字游戏: 密码学。 查看API文档: package cn.ensource.random;import java.util.Random;public class RandomDemo1 {public static voi…...
(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)
题目:3442. 奇偶频次间的最大差值 I 思路 :哈希,时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况,哈希表这里用数组即可实现。 C版本: class Solution { public:int maxDifference(string s) {int a[26]…...
深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录
ASP.NET Core 是一个跨平台的开源框架,用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录,以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...
如何在看板中有效管理突发紧急任务
在看板中有效管理突发紧急任务需要:设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP(Work-in-Progress)弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中,设立专门的紧急任务通道尤为重要,这能…...
大模型多显卡多服务器并行计算方法与实践指南
一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...
【C语言练习】080. 使用C语言实现简单的数据库操作
080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...
【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习
禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...
springboot整合VUE之在线教育管理系统简介
可以学习到的技能 学会常用技术栈的使用 独立开发项目 学会前端的开发流程 学会后端的开发流程 学会数据库的设计 学会前后端接口调用方式 学会多模块之间的关联 学会数据的处理 适用人群 在校学生,小白用户,想学习知识的 有点基础,想要通过项…...
【C++进阶篇】智能指针
C内存管理终极指南:智能指针从入门到源码剖析 一. 智能指针1.1 auto_ptr1.2 unique_ptr1.3 shared_ptr1.4 make_shared 二. 原理三. shared_ptr循环引用问题三. 线程安全问题四. 内存泄漏4.1 什么是内存泄漏4.2 危害4.3 避免内存泄漏 五. 最后 一. 智能指针 智能指…...
人工智能--安全大模型训练计划:基于Fine-tuning + LLM Agent
安全大模型训练计划:基于Fine-tuning LLM Agent 1. 构建高质量安全数据集 目标:为安全大模型创建高质量、去偏、符合伦理的训练数据集,涵盖安全相关任务(如有害内容检测、隐私保护、道德推理等)。 1.1 数据收集 描…...
uniapp 小程序 学习(一)
利用Hbuilder 创建项目 运行到内置浏览器看效果 下载微信小程序 安装到Hbuilder 下载地址 :开发者工具默认安装 设置服务端口号 在Hbuilder中设置微信小程序 配置 找到运行设置,将微信开发者工具放入到Hbuilder中, 打开后出现 如下 bug 解…...
