首页 文章 精选 留言 我的

精选列表

搜索[session],共4671篇文章
优秀的个人博客,低调大师

Session History 属性和方法

History 接口允许操作浏览器的曾经在标签页或者框架里访问的会话历史记录。 js通过window.history来访问和操作的,操作的范围是某个tab的会话历史记录。 这个tab打开后,tab内的跳转或者你手动输入的地址,都在控制范围内。 属性1. History.length 返回一个整数,该整数表示会话历史中元素的数目,包括当前加载的页。例如,在一个新的选项卡加载的一个页面中,这个属性返回1。 在这里我们想想 history.go(-histoy.length) 会发生什么呢,history.go(-history.length+1) 又会发生什么。 history.go(-histoy.length) 什么都不会发生,因为你最多只能返回 history.length - 1 history.go(-history.length+1) 当然是返回到最初打开的页面 2. History.scrollRestoration 置默认滚动恢复行为,属性可以是自动的(auto)或者手动的(manual),默认值是auto。 就是你看某个网站滚动以后,点击链接进入新页面后,再点击返回的时候,会自动回复到原来的滚动位置。 不然的话我们可能需要记住某个值,然后window.scrollTo或者Element.scrollIntoView。 看到这个就眼前一亮了,滚动恢复,这么好的属性,相见恨晚。 兼容性, PC除了IE和Edge都还好,移动端依旧是IE和Edge,外加 Andriod内置浏览器。 3. History.state 状态值,这个值一般是在histpory.pushState(state,title,url)的第一个参数设置。之后,当地址栏匹配url时,你就可获得对应的state,这个在做前端路由的时候,路由间传参是不是赶脚很有用。 方法1. go go(number) 通过当前页面的相对位置从浏览器历史记录。 -1的时候为上一页,参数为1的时候为下一页. 当整数参数超出界限时,例如: 如果当前页为第一页,前面已经没有页面了,我传参的值为-1,那么这个方法没有任何效果也不会报错。 当没有参数的时候或者不是整数的参数时, chrome和firefox下面是相当于刷新, 不会增加访问历史,基本相当于window.location.reload()。 2. History.back 前往上一页, == 点击浏览器左上角的返回按钮 3. History.forward 前往下一页,, == 点击浏览器左上角的前进按钮 4. History.pushState pushState(state, title ,url) state state 对象可以是任何可以序列化的东西。触发popstate事件时,事件的state属性包含了历史纪录的state对象,当然通过history.state也可以获得当前访问历史记录的state。 title 现在大多数浏览器不支持或者忽略这个参数,最好用null代替 url 新地址,新URL必须和当前URL在同一个源下。浏览器在调用pushState()方法后不会去加载这个URL,但有可能在之后会这样做,比如用户重启浏览器之后,这个就有点意思了。有人可能会问,这个怎么测试呢,启动chrome,打开任意网站,输入 history.pushState(null,null,'/xx/xx/xx'),然后打开新tab,输入 chrome://restart/, 这个在做单页面程序的时候,解决这种问题,需要结合服务端支持来解决这种问题。之后的文章会说道这个。 4. History.replaceState replaceState(state, title ,url) 参数和pushState是一样的,不过这方法不会增加新的历史记录,而是替换当前的历史记录。 window的popstate事件 配合window.history使用的还有一个window的popstate事件。 每当处于激活状态的历史记录条目发生变化时,popstate事件就会在对应window对象上触发。调用history.pushState()或者history.replaceState()不会触发popstate事件,popstate事件只会在浏览器某些行为下触发, 比如点击后退、前进按钮(或者在JavaScript中调用history.back()、history.forward()、history.go()方法). 当网页加载时,各浏览器对popstate事件是否触发有不同的表现, 自己测试的话chrome和firfox的较新版本都不会触发。 window.onpopstate = function(event) { setupPage(event.state); console.log('onpopstate') } event.state参数就是我们pushState,replaceState传入的参数。 最后来看一个简单的demo. History Demo History | Can I UseSession history and navigationManipulating the browser historyHistory.js polyfillHistory | MDNpopstatejquery-pjax

资源下载

更多资源
Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册