位置: 编程技术 - 正文

location.hash保存页面状态的技巧(document.location.hash)

编辑:rootadmin

推荐整理分享location.hash保存页面状态的技巧(document.location.hash),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:hashcat保存进度,location. hash,local sensitive hash,location.host的值,document.location.hash,location. hash,document.location.hash,location. hash,内容如对您有帮助,希望把文章链接给更多的朋友!

hash 属性是一个可读可写的字符串,该字符串是 URL 的锚部分(从 # 号开始的部分)。

语法

location.hash

在我们的项目中,有大量ajax查询表单+结果列表的页面,由于查询结果是ajax返回的,当用户点击列表的某一项进入详情页之后,再点击浏览器回退按钮返回ajax查询页面,这时大家都知道查询页面的表单和结果都回到了默认状态。

如果每次返回页面都要重新输入查询条件,或有甚者还得转到列表的第几页,那这种体验用户真的要抓狂了。

在我们的项目中,写了一个很简单的JavaScript基类来处理location.hash从而保存页面状态,今天在此就分享给大家。

(本文的内容可能对于JavaScript初学者来讲有点难度,因为涉及到JS面向对象的知识,如定义类、继承、虚方法、反射等)

先看看我们的需求

我们的项目是一个基于微信的H5任务管理系统,要完成的页面原型如下图所示:

需求应该都很清晰,就是点击查询表单,用ajax返回查询结果,然后点击列表中的某一个任务进入任务详情页。由于管理员(项目经理)通常会一次处理多个任务,所以就会不断在任务详情页跟查询列表页切换,这时如果按返回键不能保存查询页面状态的话,那每次返回查询页面都要重新输入查询条件,这样的体验肯定是不能忍受的。

所以,我们需要想办法将页面状态保存下来,以便用户按回退键的时候,查询条件和结果都还在。

解决思路

保存页面状态的思路有很多啦,但是我们觉得用location.hash应该是最好的方法。

思路如下:

location.hash保存页面状态的技巧(document.location.hash)

1.用户输入查询条件并点击确定后,我们将查询条件序列化成一个字符串,并通过“#”将查询条件加到url后面得到一个新的url,然后调用location.replace(新的url)修改浏览器地址栏中的地址。

2.当用户按回退键回退到查询页面时,也可以说是页面加载时,将location.hash反序列化成查询条件,然后将查询条件更新到查询表单并执行查询即可。

思路很简单,关键的地方就是location.replace方法,这个方法不仅仅是修改浏览器中地址栏的url,更重要的是会在window.history中替换当前页面的记录。如果不用location.replace方法,那么每次回退都会回退到上一个查询条件。当然,这样的需求可能对某些项目还有用。

最终解决方案

如果本文只是分享上面的解决思路,那价值就不大了。本文的价值应该是我们写的那个虽然简单但是却很强大的JavaScript类。

如果你看明白了上面的解决思路,那就看看这个简单的JavaScript类吧:

这个类只有2个方法,HashQuery.parseFromLocation() 方法从location.hash反序列化为HashQuery子类的实例,HashQuery.updateLocation() 方法将当前HashQuery子类的实例序列化并更新到window.location。

可以看到HashQuery这个类没有任何属性,那是因为我们只定义了一个基类,类的属性都在子类中进行定义。这也是符合实际的,因为查询条件都只有在具体的页面才知道有哪些属性。

另外,请注意这里的序列化和反序列化。这里的序列化仅仅是利用JavaScript反射机制将实例的所有字符串属性(按顺序)的值用“|”分隔;而序列化则是将字符串用“|”分隔后,再利用反射更新到实例的属性(按顺序)。

如何使用HashQuery类

使用的时候就非常简单了。

第一步,定义一个子类,将需要用到的查询条件都加到字符串属性当中,如我们的代码:

第二步,在查询页面调用HashQuery.parseFromLocation() 和 HashQuery.updateLocation()方法即可。下面的代码是我们完整的查询页面:

总结

这就是我们项目中使用location.hash来保存页面状态的全部知识了。不知道大家的WEB项目中是如何处理这样的需求的呢?

以上内容是小编给大家介绍的location.hash保存页面状态的技巧,希望对大家有所帮助!

JS实现的base加密解密完整实例 本文实例讲述了JS实现的base加密解密。分享给大家供大家参考,具体如下:完整的代码:HTMLHEADTITLEBase/TITLEscriptlanguage=javascriptvarbaseEncodeChars="ABCDEFGHI

Bootstrap Chart组件使用教程 Bootstrap是由前Twitter设计师MarkOtto和JacobThornton开发的前端工具包,其提供了优雅的HTML和CSS规范。Bootstrap不单单是一个框架,更确切的说,它改变了整个游

JS模仿手机端九宫格登录功能实现代码 最近没有项目做,闲来无事写了一个小demo,特此分享到积木网平台,供大家参考下,本文写的不好还请各位大侠见谅!功能及方法逻辑都注释在代码中

标签: document.location.hash

本文链接地址:https://www.jiuchutong.com/biancheng/369897.html 转载请保留说明!

上一篇:字符串反转_JavaScript(字符串反转C语言代码)

下一篇:JS实现的base64加密解密完整实例

  • 浙江税务网上办税大厅官网
  • 什么叫做负税
  • 开的税票必须过期怎么办
  • 季末计提所得税可以根据本年利润计算吗?
  • 一般纳税人转成小规模的条件
  • 一般纳税人印花税是季报还是月报
  • 企业收到的土地补偿款的企业所得税
  • 营改增建筑安装服务发票要求
  • 上月未抵扣完的进项税额
  • 营改增之前材料含税吗
  • 员工工资怎么计算公式
  • 奖金做预发年底结算缴税怎么做?
  • 以公司股权作价入股母公司
  • 收就业局稳岗补贴做账
  • 专项应付款如何核算
  • 印花税已经缴纳了但是还未申报
  • 自产产品赠送确认收入吗
  • 小规模纳税人零申报什么意思
  • 合同签订的案例
  • 多缴税款退回及退回
  • 留存收益账务处理视频
  • 暂估入库企业所得税税率
  • 银行承兑汇票保证金是什么意思
  • 招标服务费计算公式
  • Win10 64位正式版系统安装方法全过程图解(U大师)
  • paypal授权书怎么填
  • php页面之间传值
  • 若依框架登录后跳转到指定页面
  • 今天端午节?
  • 公司一直没有收入怎么办
  • 融资租赁综合利息计算
  • 房地产开发企业增值税怎么算
  • 房产土地税计提新规
  • 若依框架前端如何通过后端加载页面
  • 未抵扣进项税额转出完整分录
  • 提供加工劳务怎么开票
  • 残疾人就业保障金怎么申报
  • 公司加班餐费会计科目
  • 收回多发的工资在上缴财政,可以用应缴财政款科目吗
  • sqlserver的isnull
  • SQL SERVER 2000通讯管道后复用劫持
  • 凭证字号和凭证编号一样吗
  • 权益法转其他权益工具
  • 实收资本实务处理办法
  • 递延所得税资产和负债怎么理解
  • 低值易耗品摊销表格
  • 网上缴税app叫什么
  • 承兑汇票利息分录
  • 跨年工程施工如何计算成本
  • 初次申报出口退税可能会遇到哪些问题
  • 股权转让的账务怎么处理 会计分录
  • 复利终值和年金终值的公式
  • 工业用电交税怎么算
  • 银行承兑汇票怎么看
  • 存货明细账余额合计与存货总账余额相同
  • win7纯净版系统安装
  • windows10关闭usb端口
  • window10怎么设置蓝牙
  • 邻居家的wifi隐藏后如何连接
  • vmwarevmx进程是干嘛的
  • win7 系统启动
  • 在linux系统中命令
  • apache版本查看命令
  • win10在哪里更改用户名
  • 如何灵活使用蒙恬
  • ghost10008解决办法
  • cocos2dx-3.1.1 labelttf与label
  • cocos 2d x
  • ztree拖动
  • linux shell命令大全
  • 批处理系统的进程调度算法
  • python错误代码
  • javascript取随机数
  • 安卓手机管家在哪里打开
  • Activity的生命周期和页面之间的传递
  • 用js做表单验证
  • javascript基础书
  • 广告费属于什么会计科目
  • 河北手工发票查验平台
  • 增值税留抵退税政策
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设