首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

页面打开窗口好还是原页面打开好?

页面链接打开方式这个小细节看似不起眼,事实它对一个产品的用户体验起着比一般的作用。而什么时候才需要让链接在新建窗口中打开呢?...,可以新建窗口中打开打开大文档时,往往需要较长时间来加载,新建窗口打开该链接,可以让用户切换回原页面继续浏览,以等待文档加载完毕。...将选择权留给用户自己,培养用户习惯,这里有个很好的例子--豆瓣,豆瓣几乎所有的链接都是在当前窗口打开,只有“豆瓣FM”"九点"“阿尔法城”“豆瓣说”这几个独立性教高的页面新建窗口打开。...这实际也引出了新建窗口打开链接的第5种情况: 5 当网站上页面的独立性较大时,可以选择新建窗口打开; 这实际把原网站当成该页面的入口,可用于辅助推广新产品,引导用户讲新产品当成独立产品使用。...2、如果是文章底部出现的一篇下一篇,一页下一页之类的,我觉得就应该使用原窗口打开了。

2.5K10
您找到你想要的搜索结果了吗?
是的
没有找到

新窗口中打开页面?小心有坑!

新窗口中打开页面的问题 用简单地方式(背景中提到的)新窗口中打开页面会有一些问题。问题分为安全和性能两方面。...回到例子1,可以自己动手尝试,打开的那个页面中,打开console, 输入opener,可以看到这个对象,正是打开页面的父页面的窗口对象。...如果不看url根本区分不出来是钓鱼页面(父窗口刚打开的时候好好的,谁会关注到这个url居然悄悄地变了呢?) 3.2 性能问题 除了安全问题,例子2中还展示了简单地新窗口中打开页面的性能问题。...例子2中,新页面中有一个定时器,每隔一段时间就有一个持续的循环,这个循环阻塞新页面本身的js线程的同时,也阻塞了opener(也就是打开页面的父窗口)里的js线程。...确实,chrome有不同的标签页面使用不同进程和线程,但是有个例外,通过a标签的target="_blank"属性,或者window.open(url)新窗口中打开页面, 会与父窗口共用进程和线程。

5.2K21

新窗口中打开页面?小心有坑!

新窗口中打开页面的问题 用简单地方式(背景中提到的)新窗口中打开页面会有一些问题。问题分为安全和性能两方面。...回到例子1,可以自己动手尝试,打开的那个页面中,打开console, 输入opener,可以看到这个对象,正是打开页面的父页面的窗口对象。...如果不看url根本区分不出来是钓鱼页面(父窗口刚打开的时候好好的,谁会关注到这个url居然悄悄地变了呢?) 3.2 性能问题 除了安全问题,例子2中还展示了简单地新窗口中打开页面的性能问题。...例子2中,新页面中有一个定时器,每隔一段时间就有一个持续的循环,这个循环阻塞新页面本身的js线程的同时,也阻塞了opener(也就是打开页面的父窗口)里的js线程。...确实,chrome有不同的标签页面使用不同进程和线程,但是有个例外,通过a标签的target="_blank"属性,或者window.open(url)新窗口中打开页面, 会与父窗口共用进程和线程。

3.9K10

满足GDPR要求,Google Analytics 4删除特定用户的信息

市面上很多的分析工具、产品都宣称自己的是符合GDPR要求,你只需要去看这个工具是否可以删除特定用户的信息,就可以知道这个工具到底符不符合GDPR的要求。...Google Analytis 4提供了两种删除特定访客信息的方式。...一种是通过用户分层图表,直接在报告页面里面实现删除 一种是通过API,GA4提供一个专门的API用于删除访客信息——User Deletion API,可以集成到CMP平台(Consent Management...Platform,中文名同意管理平台) 我们这里看一下如何通过用户分层图表去删除特定访客的信息。...一般是结合细分去定位,如用户是中国中山市的,可以新建一个细分将这部分用户剥离出来,在用ctrl+f,用浏览器页面搜索功能去快速定位这个应用实例ID。 然后点击打开访客这个访客的具体信息: ?

1.4K20

页面结构化Android的尝试

参考之前Web开发经验,提出以页面结构化的解耦方式组织代码。下面讲讲LegoAndroid一次小小尝试 一,MVP简介 ? MVC太过常见这里不啰嗦。...View逻辑Activity。 业务逻辑则由Presnter的requestAllDataFromNet去实现。...Presenter可复用(日迹的需求中,首页和4Tab公用一个Presnter) 4. 方便单元测试 5....三,Lego页面结构化 前面铺垫这么多,终于到我要吹水的时候了。MVC,MVP,还有MVVM等MVX系列的设计模式,都是一种大而全的统一管理。项目结构中最为关键其实是:分模块! ?...解耦,代码可读性高,底层统一优化 使用了两个版本之后,感觉完成度还是不够。 1. 顶层Lego情况复杂,底层统一优化不好做 2.

1.3K60

页面结构化 Android 的尝试

参考之前Web开发经验,提出以页面结构化的解耦方式组织代码。下面讲讲LegoAndroid一次小小尝试 一,MVP简介 ? MVC太过常见这里不啰嗦。...View逻辑Activity。 业务逻辑则由Presnter的requestAllDataFromNet去实现。...三,Lego页面结构化 前面铺垫这么多,终于到我要吹水的时候了。MVC,MVP,还有MVVM等MVX系列的设计模式,都是一种大而全的统一管理。项目结构中最为关键其实是:分模块! ?...根据页面结构,划分出一个个独立维护模块,这就是页面结构化。 页面结构化(Lego)与组件化的区别 组件处于通用性,是不带业务逻辑的。而页面结构化是带业务逻辑。...使用了两个版本之后,感觉完成度还是不够。 顶层Lego情况复杂,底层统一优化不好做 接口之间约束,不够自由 但是对比MVP,Lego能体验出轻便,逻辑清晰,方法数量少的优势。

1.1K50

html滚动条使用,以及页面有多个div块,如何让body页面不使用滚动条,只某个div内使用滚动条

滚动条基本知识: 建议比价华丽的页面使用overflow:scroll这个样式的滚动条,比较好看。...2. scrollbar-3d-light-color立体滚动条亮边的颜色(设置滚动条的颜色) scrollbar-arrow-color上下按钮三角箭头的颜色 scrollbar-base-color...举例: 2,页面有多个div块,如何让...body页面不使用滚动条,只某个div内使用滚动条 先说说正常显示的,显示滚动条和不显示滚动条,效果图如下: 代码: iframe 中始终显示滚动条:</h3...2,另外可能会出现关闭了整个body的滚动条后,发现div的滚动即使启动了也没有显示,这种情况可能是没有设置此div的高度或宽度,这是需要设置的。

4.4K30

通过 JS 实现简单的拖拽功能并且可以特定元素禁止拖拽

本文的重点是讲解如何在某些特定的元素禁止拖拽。这是我在编写插件时遇到的问题,其实很多插件的拖拽功能并没有处理这些细节,经过翻阅 jquery ui 的源码才找到答案。..."> 演示 Demo CSS .modal { position: fixed...排除特定元素的方法 关于如何排除特定元素的方法,很多人会推荐阻止冒泡的方法,但是我试了很多次,这种方法是不行的,因为拖拽事件绑定在了 document 对象。...解决的方法就是拖拽开始时添加限制条件,代码如下 ......因为我们排除特定元素的同时也要排除它的子元素。如果使用原生 JS 的话,需要添加获取子元素的方法。

4.8K90

Linux 特定的用户或用户组启用或禁用 SSH

它采用了客户端-服务器架构(C/S),拥有用户身份认证、加密、计算机和隧道之间传输文件等功能。...如果你想要允许多个用户,那么你可以添加用户时同一行中用空格来隔开他们。 为了达到目的只需要将下面的值追加到 /etc/ssh/sshd_config 文件中去。...(下面这两条命令效果相同, 请根据你的服务管理方式选择一条执行即可) # systemctl restart sshd 或 # service restart sshd 接下来很简单,只需打开一个新的终端或者会话尝试用不同的用户身份访问...如果你想要禁用多个用户,那么你可以添加用户时同一行中用空格来隔开他们。 为了达到目的只需要将以下值追加到 /etc/ssh/sshd_config 文件中去。...# systemctl restart sshd 活 # service restart sshd 接下来很简单,只需打开一个新的终端或者会话,尝试使用被禁用的用户身份被访问 Linux 系统。

2.5K60

dotnet 测试 UOS Linux 使用 Process Start 打开文件的行为

本文记录我 UOS Linux 系统使用 Process.Start 打开文件的行为 使用 UseShellExecute 打开文本文件 我放入了名为 Test.txt 的文件,然后使用下面代码尝试打开文件...实际测试可以正常打开 using System.Diagnostics; var filePath = ".....UseShellExecute = true }); 本文以上代码放在github 和 gitee 欢迎访问 可以通过如下方式获取本文的源代码,先创建一个空文件夹,接着使用命令行 cd 命令进入此空文件夹,命令行里面输入以下代码...UseShellExecute = true }); 本文以上代码放在github 和 gitee 欢迎访问 可以通过如下方式获取本文的源代码,先创建一个空文件夹,接着使用命令行 cd 命令进入此空文件夹,命令行里面输入以下代码...UseShellExecute = true }); 本文以上代码放在github 和 gitee 欢迎访问 可以通过如下方式获取本文的源代码,先创建一个空文件夹,接着使用命令行 cd 命令进入此空文件夹,命令行里面输入以下代码

14710
领券