URL中的hash,也就是网址井号后面的部分,其实是一块宝地,它能创建浏览历史,也能存储一些简单数据。从Twitter开始Hash被用来定义Ajax内容,虽然如今已被HTML5的pushState所替代。这里介绍jQuery Hash 插件,可以帮助你完成简单数据的存储。
Hash存储数据有什么用
首先传统URL传递数据的弊端是,对搜索引擎不友好,搜索引擎会认为 /example和/example?key=val是不同的网址,然而hash则不同,搜索引擎认为 /example 和 /exmaple#;key=val 会是两个完全相同的网页。此外,用hash存储数据也不必刷新页面。
hash可以作为一种本地临时存储的解决方案,正如cookie那样。可以在url中保存临时的用户状态这是cookie做不了的。例如含有Ajax页面的刷新,就可以直接利用hash存储当前的状态。再例如你可以配合Hashchange监听来完成一些事情。
这算是一个尝试,虽然目前少有人在hash存数据上作文章,但是如果你真的需要,可以用这个插件参考一下。
看看什么样子的
下图即是一个实例,网址正常部分是example.com/demo,然后在网址hash中存了数据keyA=valA和keyB=valB;它们之间用分号“;”隔开,第一个key名前也有分号。
如果要用传统URL传递,则是example.com/demo?keyA=valA&keyB=valB的样子。
另外,如果URL本身带有一段hash,比如存在网页本身的锚点书签跳转,再储存数据时则可以是这样:
其中index并不是数据,前面带有分号的才是数据。很容易区分。
怎样使用jQuery Hash 插件
使用方法非常简单。分别有设置值、增加一对值,改变值、读取值,以及删除值。此外,此插件必须先引入jQuery,很好兼容大多的版本。
设置值
只需运行
$.hash( ~keyName, ~value );
即可设置一对值。例如,运行$.hash("color", "yellow");即可存储“color=yellow”到URL的hash里,使URL看起来像
example.htm#;color=yellow
增加值
想要增加一对值,同样运行设置值的脚本即可。例如再次运行$.hash("fontSize","20px;"),既可新存储这对值到hash里,使URL看起来像
example.htm#;color=yellow;fontSize=20px
改变值
同样运行设置值的脚本,第二个参数改为你想要新值即可,这个操作会把此对值移到hash末尾突显改变。
例如运行$.hash("color","green");即可改变hash里已存储的color的值,使得URL看起来像
example.com#;fontSize=20px;color=green
读取值
只需运行
$.hash( ~keyName )
即可读取名为~keyName的值,例如现在运行$.hash("fontSize");则会返回“20px”。
删除值
要删除已经存储的一对值,可以运行
$.hash( ~keyName, null )
来删除它。例如现在运行$.hash("color", null);既可删除hash中已存储的color=green数据,使得URL看起来像
example.htm#;fontSize=20px
jQuery Hash 插件 Demo
如果你还不理解或者想要看demo,按此。
获得jQuery hash 插件
要引入此插件非常简单,你可以到这里下载此js插件文件。
然后在至少引入jQuery后的某个位置加入
<script src="jQuery.hash.js" type="text/javascript"></script>
写在最后
插件下载链接在上面。在此要感谢Lewis,这个插件是基于他的jQuery hash plugin修改的。目前不支持中文开头的key名。首先我考虑了一下,hash后面如果出现的是?或者&这些正规的参数符号的话比较容易和hash井号前面的参数混淆,所以我选择了一个更美观的符号“;”分号,占用体积小几乎看不到,但是不影响使用;不会和前面出现问号和and符号混淆,而且这个也不需要两个符号,只需要分号而已。但如果你需要传统and符,你可以去原作者网站上下载,或者基于这个插件自行修改。
谢谢收看。
原文:http://blog.netsh.org/posts/jquery-hash-plugin_1455.netsh.html
更多参考:
1. http://benalman.com/code/projects/jquery-hashchange/docs/files/jquery-ba-hashchange-js.html
2. https://github.com/gcoguiec/jquery-hash
3. https://github.com/blixt/js-hash
相关推荐
而 `jquery.hash.min.js` 和 `jquery.ba-hashchange.min.js` 这两个文件则是在 jQuery 基础上扩展了对浏览器 URL hash 变化的处理,从而实现单页面应用(Single Page Application, SPA)中后退和前进按钮的刷新功能...
jQuery DOM元素哈希插件 支持的哈希方法 base64 md5 sha1 自己编译 如果要编译自己的版本或jquery.hash的修改 npm install node compile 抓取out/jquery.hash.min.js文件并将其插入! 例子 DOM元素 $elem = $ ...
idTabs是一款基于jQuery库的轻量级Tab切换插件,其设计目标是提供一个简单、易用且功能齐全的解决方案,用于在网页中创建Tab式布局。这个插件以其直观的API和良好的浏览器兼容性而受到开发者的青睐。在本文中,我们...
**jQuery分页插件jPages详解** 在网页开发中,数据分页是一种常见的优化加载速度和提高用户体验的方法。尤其在处理大量数据时,分页可以让用户更流畅地浏览信息,而不是一次性加载所有内容。`jQuery`是JavaScript的...
《jQuery HashChange插件修改详解》 在Web开发中,jQuery是一个广泛使用的JavaScript库,它极大地简化了DOM操作、事件处理以及Ajax交互等任务。而HashChange事件是HTML5引入的一个新特性,允许开发者监听浏览器URL...
- **导航到页内指定位置**:使用jQuery自动根据URL中的hash值定位到页面中的指定位置。 - **Automatically generate table of contents using jQuery**:利用jQuery自动生成目录。 - **“OutsidetheBox” Navigation...
**jQuery的单页面滚动插件**是Web开发中一种常用的技术,它允许用户在单一页面内通过滚动浏览多个“分页”内容,提供流畅且直观的用户体验。这种插件通常结合了JavaScript库jQuery,利用其强大的DOM操作和事件处理...
**jQuery History 插件详解** 在Web开发中,页面历史管理是实现无刷新导航的关键,尤其是在单页应用程序(SPA)中。jQuery History插件提供了一种简单的方式来处理浏览器的History对象,使得开发者能够轻松地监听和...
### jQuery插件开发快速入门详解 #### 一、概述 jQuery 是一款轻量级的 JavaScript 库,它简化了 HTML 文档遍历、事件处理、动画以及 Ajax 交互等操作。由于其简单易用的特点,jQuery 成为了最受欢迎的前端库之一...
**jQuery平滑滚动插件详解** 在Web开发中,用户界面的流畅性和用户体验是至关重要的。jQuery平滑滚动插件正是为了实现这一点而设计的,它使得网页元素的滚动过程更加平滑、自然,尤其在处理长页面和焦点图切换时...
这个压缩包“jquery插件库-jquery左侧导航滑动网页定位效果.zip”显然是关于一个jQuery插件,其核心功能是创建一个左侧导航,该导航在用户滚动页面时能够自动定位到相应的内容区域。 首先,让我们深入了解一下...
本文实例讲述了jQuery md5加密插件jQuery.md5.js用法。分享给大家供大家参考,具体如下: 使用方法: $.(md5("你想要加密的字符串")); jquery.md5.js插件代码: /** * jQuery MD5 hash algorithm function * *...
《jQuery.scrollTo.js网页滚动插件深度解析》 在网页设计中,流畅的用户交互体验是提升网站品质的关键因素之一。jQuery.scrollTo.js插件正是这样一款工具,它为开发者提供了强大的网页滚动控制功能,使得网页的整体...
Feedify 是个 jQuery 插件,用来把文本转换成 HTML feed ,类似 Twitter 和 Facebook。它能转换 URL 到链接,添加用户链接和 Hash 搜索链接。在线演示 标签:Feedify
jQuery插件是基于jQuery的代码片段,用于扩展其功能,例如这里提到的几个插件都是jQuery相关的。 3. **jq插件**:在IT领域,"jq"通常作为jQuery的简称。这里的"layui jq插件"指的是与layui兼容的jQuery插件,用于在...
**jQuery Hash Tag Input 插件详解** 在网页开发中,哈希标签(#tags)已经成为了数据分类和用户互动的重要工具,特别是在社交媒体、博客和论坛等应用中。jQuery 是一个广泛使用的 JavaScript 库,它提供了丰富的...
idTabs v3.0是一款基于jQuery的轻量级Tab插件,专为简化网页界面的Tab切换功能设计。这款插件以其简洁的API和高效性能,成为开发者在构建响应式和交互式网页时的首选工具之一。在HTML5时代,idTabs更是能够充分利用...
### jQuery MD5插件详解 #### 一、概述 在当今信息安全领域,数据加密与验证技术扮演着极其重要的角色。MD5(Message-Digest Algorithm 5)作为一种广泛使用的散列函数,因其高效的处理速度和相对的安全性,在多种...
1. **URL Hash 存储应用状态**: 当用户在应用中进行操作时,jQuery History 插件可以将当前的应用状态保存到URL的哈希部分。例如,`http://example.com/#state1`。这使得当用户点击浏览器的后退或前进按钮时,可以...
可定制的滚动到哈希 jQuery 插件#Todos 抵消管理 滚动持续时间 宽松 打回来 目标检查 url重写真/假 速度管理 URL 中的页面更改宽度 # #如何使用##1。 加载 jQuery 和 scrollToHash 要使用 scrollToHash,您需要...