HTML5 history详解_html5history_拾掇时光的印记的博客-程序员宝宝

技术标签: 前端开发  成长轨迹  HTML  

最近研究vue-router单页转跳而不向服务器请求的原理,

主要是HTML5 history以及hash的应用,支持history时使用history模式

下面详细学习了一下常用的history相关的API

常用API:

1.history.length:

返回当前页面所产生的历史记录个数,即在同一个浏览器tab下产生的历史记录;

2.history.pushState(state,title,URL):

向浏览器新增一条历史记录,但是不会刷新当前页面(不会重载),其中state为对象,可以用作携带信息用,title:目前来看没啥用一般为空或null,URL:即要更改页面的URL,且必须同源,不能跨域;

3.history.replaceState(state,title,URL):

更改当前浏览器的历史记录,即把当前执行此代码页面的记录给替换掉,参数与第二条相同;

4.history.back()、history.forward()、history.go():

分别为前进一个历史,后退一个,history.go(Number),其中Number可正可负,即向前或向后若干个记录

5.history.state:

返回当前页面状态参数,此参数一般由history.pushState(state,title,URL);以及history.replaceState(state,title,URL);附带的state值,例子如下:

当前页面为http://example.com


  
   
  1. history.pushState({ a: 1},null, "test1"); //http ://example.com/test1
  2. history.state; //{ a: 1}
  3. history.pushState({ b: 2},null, "test2"); //http ://example.com/test2
  4. history.state; //{ b: 2}
  5. history.back(); //http ://example.com/test1
  6. history.state; //{ a: 1}
  7. history.back(); //http ://example.com
  8. history.state; //null

上面例子应该已经很明确的表明state的取值,即当前页面的状态值,没有状态值为null;

6.history事件onpopstate:


  
   
  1. window.onpopstate = function(e){
  2. console.log(e.state);
  3. }

在history.back(),history.forward(),history.go()时触发此事件,但是在history.pushState();history.replaceState();时并不会触发此事件,事件内可以获取到state状态值


由此可以看出vue-router中push()、go()等函数的一些端倪,但是vue-router比这个要复杂,

history是其基础之一,下一篇还有其hash的用法详解。


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/liangtaox8/article/details/100587532

智能推荐

[BZOJ1296][SCOI2009]粉刷匠_Zvezda_的博客-程序员宝宝

刷水…数组开小了一次,呵呵…

关于一个条形码(二维码)扫描的商品管理器_lllinux_nekomiya的博客-程序员宝宝

目的在某天起床的时候想起自己在家里守铺子的时候经常会忘记某个商品的价格(又没有贴标签),突然想到做一个可以识别条形码来获得商品价格的东东。环境前端 flutter+后端 PHP思路实现起来还是比较简单,扫描条形码获得商品的商品条码,然后到数据库中查这个商品的信息。开发遇到的问题无法进入扫码界面应该是没有申请相机权限在AndroidManifest.xml中加入<use...

《学习opencv》笔记——矩阵和图像操作——cvCalcCovarMatrix,cvCmp and cvCmpS_weixin_33694620的博客-程序员宝宝

矩阵和图像的操作(1)cvCalcCovarMatrix函数其结构void cvCalcCovarMatrix(计算给定点的均值和协方差矩阵 const CvArr** vects,//给定向量 int count,//给定向量的组数 CvArr* cov_mat,//结果矩阵 CvArr* avg,//依据flag得到结果 int flags...

JavaEE AspectJ开发——基于XML的声明式AspectJ_「已注销」的博客-程序员宝宝

AspectJ是一个基于java语言的AOP框架,他提供了强大的AOP功能,在Spring框架中建议使用AspectJ来开发AOP。AspectJ实现AOP有两种方式,一、基于xml的声明式AspectJ,二、基于注解的声明式AspectJ今天我就先来学习基于xml的声明式AspectJ(!!!!!下面代码涉及前几天所写的UserDaoImpl,需要查看的点击这里)1、首先来需要注...

[极客大挑战 2019]Upload 1_bfengj的博客-程序员宝宝

前言这真的是一道挺简单的题目,就是进行内容和后缀的绕过,但是我这里出了一点问题。我是用了一个png图片,直接往后面放一句话,之前的做一道文件上传的时候用的挺好的,这题发现不行。不知道是题目过滤了png图片头还是那张图片的问题。因此去查了查WP,看了一下别的师傅的图片马的头部都是什么样的,然后就过了。WP这题的绕过点有三个,一个就是文件内容不能有<?,还有就是文件后缀的绕过,还有图片头。因此图片内容如下:GIF89a? <script language="php">eval($_

将python字典中相同键的值合并成列表_多个字典合并,相同的键值_Always--Learning的博客-程序员宝宝

问题介绍有时候我们需要将两个字典进行合并,我们需要相同的键的值,合并成一个列表。代码dic_a = {"key1":1,"key5":2}dic_b = {"key1":3,"key4":4}print("合并前的字典1是{}".format(dic_a))print("合并前的字典2是{}".format(dic_b))# 实现的目标是 "key2":[2,3]result_dic = {}'''核心思路: 1:遍历字典1和字典2的每一个键 2:如果两

随便推点

命令删除mysql_windows下如何彻底卸载mysql_咱也不敢说的博客-程序员宝宝

1、停止MySQL服务打开运行,输入“cmd”,点击确定,输入命令“net stop mysql;”即可。2、卸载mysql server打开控制面板,进入【程序】选项,将mysql server卸载。3、将MySQL安装目录下的MySQL文件夹删除(这里的安装目录是C:\Program Files (x86)\MySQL)4、打开注册表编辑器删除HKEY_LOCAL_MACHINE\SYSTEM...

linux下设置SVN钩子 , 自动更新web目录-程序员宝宝

很多程序员用SVN来进行版本控制 ,把SVN的内容同步到服务器的web目录中,需要手动svn update来更新。那如何在客户端提交到SVN后,自动更新到web目录呢?假设web目录已经从SVN中检出,那么我们进入对应的SVN仓库下hooks文件夹:(Simon安装SVN的时候 , 将仓库设置在了/home/svn/ , 我当前项目为sblog)cd /home/svn/sblog/hooks/接下来新建个配置文件 post-commitvim post-commit...

这样讲原码、反码、补码!学妹连夸我很猛!!_Hollis Chuang的博客-程序员宝宝

前言补码是给机器看的,原码是给人看的,反码是二者的桥梁,原码反码补码虽然是简单问题,但确实很多人很长时间没有搞明白和深入思考,这篇把自己学习和理解过程记录下来,刚好一个学妹问到这个问题。本...

java技术栈 高清视频_bv12s411w7ew_哈哈和呵呵的博客-程序员宝宝

一、Java 基础尚硅谷宋红康(强力推荐)https://www.bilibili.com/video/av48144058动力节点 Java 零基础教程视频https://www.bilibili.com/video/av11361088北京尚学堂高琪(推荐)https://www.bilibili.com/video/av30023103求知讲堂:2019 求知讲堂零基础 Java 入门编程视频教程高口碑无废话无尿点https://www.bilibili.com/vid

hdu 1853 最小费用流好题 环的问题_hdu1853费用流裸题_chasexie(xiehonghao)的博客-程序员宝宝

Cyclic TourTime Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/65535 K (Java/Others)Total Submission(s): 1120    Accepted Submission(s): 579Problem DescriptionThere are N cities

the latest ButterKnife and Android-Butterknife-Zelezny__yph的博客-程序员宝宝

这篇文章介绍ButterKnife及其配套的plugin —— Android-Butterknife-Zelezny的用法,基于最新版7.0.1官方文档网上有大多数旧版本相关文章介绍,还是使用着@InjectView注解,而新版本则用@Bind关键字注解使用@Bind 和 view ID 代替findViewByID :class ExampleActivity

推荐文章

热门文章

相关标签