关于状态可见原则 由 Ghostzhang 发表于 2022-05-09 16:12 『状态可见原则』是尼尔森交互设计原则之一,大体的意思是 系统应该在合理的时间内通过适当的反馈,始终让用户了解正在发生的事情...由于定义里提到了『反馈』,以至大多数的时候我们都是围绕着反馈在做方案,如用户点击之后消息要如何提示、网络状态变化时要如何提示用户、任务进度变化时怎么提示等等。...但状态并不只有操作后才出现,操作前也有状态,如制作一个组件时,通常会把组件的不同状态(正常、鼠标经过、鼠标点击、加载中、报错、禁用等)做出来,其中正常态和禁用态就是操作前的状态,其它都是操作后的反馈。...我们对列表前面的三角箭头所表达的意思已经很熟悉了,通常代表着可以展开下一级内容 同时也意味着存在下一级内容(并非都有这一层意思,如文件夹就没有,仅能表达类型) 可见,列表前的三角箭头有表示『有下一层级信息...』的意思,同时箭头的方向表示『层级是否展开』的状态。
—— 杰普莉茨卡娅 有时我们需要在js中触发打开新标签页、或者是在当前页面跳转以及在iframe中替换父页面 使用window.open即可,关于它的参数,为以下四个: URL:需要打开的页面URL...window.open("https://vampireachao.gitee.io/") name:打开页面的方式或名称 // 新窗口打开,默认 window.open("https://vampireachao.gitee.io.../","_blank") // 父窗口打开,ifame中使用 window.open("https://vampireachao.gitee.io/","_parent") // 当前窗口中打开 window.open...("https://vampireachao.gitee.io/","_self") // 顶层窗口打开,iframe中使用 window.open("https://vampireachao.gitee.io.../","_top") specs:属性,不同属性用逗号隔开,key和value之间用等号 // 设置宽高 window.open("https://vampireachao.gitee.io/","_blank
window.self 功能:是对当前窗口自身的引用,它和window是等价的 语法:window.self 注:window、self、window.self是等价的 window.top 功能:返回顶层窗口...语法:window.top 注:如果窗口本身就是顶层窗口,top属性返回的是对自身的引用。 window.parent 功能:返回父窗口。...语法:window.parent 注:如果窗口本身是顶层窗口,parent属性返回的是对自身的引用。 在框架网页中,一般父窗口就是顶层窗口,但如果框架中还有框架,父窗口和顶层窗口就不一定相同了。
知识点表格截图:
简介 状态模式(State)允许一个对象在其内部状态改变的时候改变它的行为,对象看起来似乎修改了它的类。...其实就是用一个对象或者数组记录一组状态,每个状态对应一个实现,实现的时候根据状态挨个去运行实现。 2....状态模式的思路是:首先创建一个状态对象或者数组,内部保存状态变量,然后内部封装好每种动作对应的状态,然后状态对象返回一个接口对象,它可以对内部的状态修改或者调用。...---- 本文是系列文章,可以相互参考印证,共同进步~ JS 抽象工厂模式 JS 工厂模式 JS 建造者模式 JS 原型模式 JS 单例模式 JS 回调模式 JS 外观模式 JS 适配器模式 JS 利用高阶函数实现函数缓存...(备忘模式) JS 状态模式 JS 桥接模式 JS 观察者模式 网上的帖子大多深浅不一,甚至有些前后矛盾,在下的文章都是学习过程中的总结,如果发现错误,欢迎留言指出~ 参考: 《Javascript 设计模式
网页可见区域宽:document.body.clientWidth 网页可见区域高:document.body.clientHeight 网页可见区域宽:document.body.offsetWidth...(包括边线的宽) 网页可见区域高:document.body.offsetHeight (包括边线的宽) 网页正文全文宽:document.body.scrollWidth 网页正文全文高:document.body.scrollHeight... 网页被卷去的高:document.body.scrollTop 网页被卷去的左:document.body.scrollLeft 网页正文部分上:window.screenTop 网页正文部分左...:window.screenLeft 屏幕分辨率的高:window.screen.height 屏幕分辨率的宽:window.screen.width 屏幕可用工作区高度:window.screen.availHeight...scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离 scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离 scrollWidth:获取对象的滚动宽度
用window.location处理解析当前页面URL window.location 对象所包含的属性 属性 描述 hash 从井号(#)开始的URL(锚点) host 主机名和当前URL的端口号 hostname...主机名 href 完整的URL pathname 路径 port 端口号 protocol 协议 search 参数 js 脚本捕获页面 GET 方式请求的参数?...其实直接使用 window.location.search 获得,然后通过 split 方法结合循环遍历自由组织数据格式。...大概处理如下: var searchURL = window.location.search; searchURL = searchURL.substring(1, searchURL.length...("a");//GET['a'],取得URL参数a 本文采用 「CC BY-NC-SA 4.0」创作共享协议,转载请标注以下信息: 原文出处:Yiiven https://www.yiiven.cn/js-window-location.html
window.location 对象用于获得当前页面的地址 (URL),并把浏览器重定向到新的页面。...Window Location window.location 对象在编写时可不使用 window 这个前缀。...当前页面的)整个 URL: document.write(location.href); 以上代码输出为: http://www.w3school.com.cn/js.../js_window_location.asp Window Location Pathname location.pathname 属性返回 URL 的路径名。...实例 返回当前 URL 的路径名: document.write(location.pathname); 以上代码输出为: /js/js_window_location.asp
电脑重装了系统很多东西都要重新安装,就连jdk的环境变量都老是忘何况安装nodejs呢,记录下,下次肯定用得到~ 一、下载安装 首先官网下载node.js:官网下载地址: http://nodejs.cn...例如:我希望将全模块所在路径和缓存路径放在我node.js安装的文件夹中,则在我安装的文件夹【D:\软件\nodejs】下创建两个文件夹【node_global】及【node_cache】如下图: 用来存放模块和缓存...docsify官方地址:https://docsify.js.org/#/zh-cn/ 参考:https://ymjin.blog.csdn.net/article/details/121788104
定义和用法 首先来看一下它的定义和用法,MDN是这样定义它的: 这是一个实验中的功能,window.requestIdleCallback() 将一个(即将)在浏览器空闲时间执行的函数加入队列,这使得开发者在主事件循环中可以执行低优先级工作...通过这个定义,我们发现它的执行时机在浏览器的“空闲”状态,那么怎样定义这个状态呢?...浏览器每一帧都需要完成这些任务: 处理用户交互 JS执行 一帧的开始,处理视窗变化、页面滚动等 requestAnimationFrame(rAF) 重排(layout) 绘制(draw) 在这些步骤完成后...执行间隔变到5-20ms左右,变得相当混乱,原因可能是浏览器增加了额外的工作检验任务是否已经超时,可见附加timeout属性想让它变得“靠谱”是要付出代价的,其调用频率将大幅上升。...下一帧即将开始之际,这个函数先依据当前的时间戳估算出该帧的过期时间(deadline默认是在当前时间戳的基础上加5ms),然后调用flushWork,这个函数在taskQueue中任务执行之前重置一些状态
原理:浏览器判断是否切换页面主要是判断 用户是否切换 选项卡 tab 1 方法: (1) document.hidden 返回值为true:表示被隐藏,不可见 返回值为false:...表示未被隐藏,可见 (2)document.visibilityState 返回值为 visible:表示是可见状态 返回值为 hidden:表示隐藏状态 检测用户是否切换页面 2...; } }) } window.addEventListener("visibilitychange", function () { if (document.hidden) { alert...; } }); 鼠标是否移出浏览器 window.onmouseout = function (event) { if (event.toElement === null) { alert('警告
今天一个小伙伴问我问题,就是java后台把数据放入session,jsp里js重定向页面之后就取不到session里面的数据了,而且他本地可以,服务器上却取不到session 下面是他写的重定向代码:...我很少写前端,所以也蒙圈了,带着奇怪的问题google了下,发现问题的原因了session lost with window.kk 大概意思就是:window.kk 之后,重新创建了一个新的httpcontext
大致步骤 安装Node.js 安装Vue.js 安装Webpack Step1: 安装Node.js Node.js是一个Javascript运行环境(runtime)。...Node.js对一些特殊用例进行了优化,提供了替代的API,使得V8在非浏览器环境下运行得更好。...Node.js是一个基于Chrome JavaScript运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。...Node.js 使用事件驱动, 非阻塞I/O 模型而得以轻量和高效,非常适合在分布式设备上运行数据密集型的实时应用。 Node.js 的包管理器 npm,是全球最大的开源库生态系统。...Step 2: 安装Vue.js 首先使用淘宝的镜像升级npm,使其可以使用cnpm命令(单纯的npm可能由于网络长城因而速度受限)。
this.getBoundingClientRect().top+document.documentElement.scrollTop; getBoundingClientRect判断元素是否在可视区域 以前的办法是通过各种offset判断元素是否可见...el.getBoundingClientRect(); return ( rect.top >= 0 && rect.left >= 0 && rect.bottom <= (window.innerHeight...|| document.documentElement.clientHeight) && /*or $(window).height() */ rect.right <= (window.innerWidth...|| document.documentElement.clientWidth) /*or $(window).width() */ ); } getBoundingClientRect兼容性
---- 本文简介 原生 canvas 提供了 save() 和 restore() 两个方法去管理画布状态。p5.js 作为一个 canvas 库,也理所当然的提供了状态管理的方法。...想了解原生 canvas 状态管理,推荐阅读 《canvas 状态管理》 p5.js 的 push 和 pop 简单来说,状态管理可以理解为游戏中的存档。...以上就是 p5.js 的状态管理功能。...这是原生 canvas 就已经提供的能力,想了解原生方面的知识可以看 《canvas 状态管理》 推荐阅读 《p5.js 光速入门》 《p5.js 使用npm安装p5.js后如何使用?》...《canvas 状态管理》
js状态模式是什么 说明 1、关键是区分事物内部的状态,事物内部状态往往会带来事物的行为改变。 即允许对象在内部状态发生改变时改变它的行为。...2、状态模式就是封装状态,允许一个对象在其内部状态改变时改变它的行为,我们之前一般都是封装行为。... turn to red light setInterval(() => { state.currState.light() // 每隔3秒依次打印红灯、绿灯、黄灯 }, 3000) 以上就是js...状态模式的介绍,希望对大家有所帮助。...更多js学习指路:js教程 推荐操作环境:windows7系统、jquery3.2.1版本,DELL G3电脑。 收藏 | 0点赞 | 0打赏
效果图: image.png image.png image.png image.png image.png image.png image.png image.png 状态栏...; function interval(){ if(i<arr.length) { info=info+arr[i]; window.status=info;...++; }else { i=0; info=""; } } function showInfo() { iIntervalID = window.setInterval...("interval()",2000); } function cancelInfo(){ window.clearInterval(iIntervalID); }
Node.js内部基准测试 考虑到 Node.js 基准测试套件的规模庞大且耗时,我选择了在我看来对 Node.js 开发人员和配置有更大影响的基准测试,比如使用 fs.readfile 读取 16MB...有关 Node.js 基准测试套件的更多详细信息,请参阅 Node.js 源代码[2]。...- Node.js 模块.require streams - Node.js 流的创建、销毁、可读等 url - Node.js URL 解析器 buffers - Node.js 缓冲区操作 util...从 Node.js 16 升级到 Node.js 18 可以在事件分派性能上获得近 15% 的改进。...其他 根据我们的测试,startup.js 脚本在 Node.js 进程生命周期中表现出显著的改进,从 Node.js 版本 18 到版本 20 观察到了 27% 的提升。
document.getElementById('imgFile').files[0]; 6 7 var createObjectURL = function(blob){ 8 return window...[window.webkitURL ?
当我们分析爬虫时,有时候会遇到一些加密参数,这个时候就需要我们逆向分析js python执行js有一些第三方库 所以我们只要在对应js代码里最前面加上以下代码就能正常运行 const jsdom =...DOCTYPE html>Hello world`); window = dom.window; document = window.document; XMLHttpRequest =...window.XMLHttpRequest; 在全局安装jsdom后,在node里按上面的写法是没有问题的,但是我们要在python中使用的话,不能在全局安装 如果在全局安装,使用时会报如下错误,说找不到...可以查看全局模块安装路径: C:\Users\w001\AppData\Roaming\npm\node_modules 我们使用时,代码可以按下面的写法写 import execjs with open(r'要运行的.js...','r',encoding='utf-8') as f: js = f.read() ct = execjs.compile(js,cwd=r'C:\Users\w001\AppData\Roaming
领取专属 10元无门槛券
手把手带您无忧上云