`
天梯梦
  • 浏览: 13632550 次
  • 性别: Icon_minigender_2
  • 来自: 洛杉矶
社区版块
存档分类
最新评论

jQuery hash 插件

 
阅读更多

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名前也有分号。

jquery-hash-demo-pic-a

如果要用传统URL传递,则是example.com/demo?keyA=valA&keyB=valB的样子。

另外,如果URL本身带有一段hash,比如存在网页本身的锚点书签跳转,再储存数据时则可以是这样:

jquery-hash-demo-pic-b

其中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

 

justcode.ikeepstudying.com

分享到:
评论

相关推荐

    jquery.hash:jQuery DOM元素哈希插件

    jQuery DOM元素哈希插件 支持的哈希方法 base64 md5 sha1 自己编译 如果要编译自己的版本或jquery.hash的修改 npm install node compile 抓取out/jquery.hash.min.js文件并将其插入! 例子 DOM元素 $elem = $ ...

    jquery md5 插件

    亲测好用,加密结果与php的md5函数结果一直,使用时只需引入文件,然后用$.md5调用

    jQuery md5加密插件jQuery.md5.js用法示例

    本文实例讲述了jQuery md5加密插件jQuery.md5.js用法。分享给大家供大家参考,具体如下: 使用方法: $.(md5("你想要加密的字符串")); jquery.md5.js插件代码: /** * jQuery MD5 hash algorithm function * *...

    jQuery插件Feedify.zip

    Feedify 是个 jQuery 插件,用来把文本转换成 HTML feed ,类似 Twitter 和 Facebook。它能转换 URL 到链接,添加用户链接和 Hash 搜索链接。在线演示 标签:Feedify

    jQuery.scrollToHash:可定制的滚动到哈希 jQuery 插件

    可定制的滚动到哈希 jQuery 插件#Todos 抵消管理 滚动持续时间 宽松 打回来 目标检查 url重写真/假 速度管理 URL 中的页面更改宽度 # #如何使用##1。 加载 jQuery 和 scrollToHash 要使用 scrollToHash,您需要...

    jquery.serialize-hash:jQuery插件,该插件从表单的序列化返回哈希值。 支持输入名称的小写

    #jQuery序列化哈希插件 在麻省理工学院(MIT)许可下由托管。 jQuery插件,该插件从表单或任何DOM元素的序列化返回哈希值。 它在嵌套哈希的输入名称上支持方括号。 如果要从表单获取值并将其与另一个哈希合并,...

    jquery-hash-tag-input:用于编写哈希标签的 jquery 插件

    jQuery 哈希标签输入 用于编写哈希标签的 jquery 插件 ##Demo

    jQuery密码输入体验Chroma-Hash.zip

    Chroma-Hash是一个能够为用户提供更好密码输入体验的jQuery插件。它能够将输入的值转换成某种颜色组合。用户只要记住正确密码的颜色,就能够判断自己输入的密码是否正确,而不需要等到提交服务器才知道是否正确。 ...

    ChromaHash是一个能够为用户提供更好密码输入体验的jQuery插件

    Chroma-Hash是一个能够为用户提供更好密码输入体验的jQuery插件。它能够将输入的值转换成某种颜色组合。用户只要记住正确密码的颜色,就能够判断自己输入的密码是否正确,而不需要等到提交服务器才知道是否正确。

    基于jQuery的history历史记录插件

    历史的jQuery插件可以帮助您回到您的JavaScript支持应用程序/前进按钮和书签。 You can store the application state into URL hash and restore the state from it.你可以存储到应用程序状态的网址散列和恢复它的...

    前端项目-jquery.hashcash.io.zip

    前端项目-jquery.hashcash.io,jquery hashcash.io插件

    JS-url插件

    一个让你很简单处理url的jquery插件. A simple, lightweight url parser for JavaScript (~1.6 Kb minified, ~0.6Kb gzipped). url(); // ...

    18个非常棒的jQuery代码片段

    1、jQuery实现的内链接平滑滚动 不需要使用太复杂的插件,只要使用下载这段代码即可实现基于内部链接的平滑滚动 $('a[href^="#"]').bind('click.smoothscroll',function (e) { e.preventDefault(); var anchor = ...

    jquery-pjaxr:Pushstate aJAX 扩展替换

    jquery-pjaxr 是一个插件,它使用 ajax 和 pushState 来提供快速浏览体验。 它能够用完整的后退功能替换多个容器和不同的头部标签。 对于 pjaxr 的完全降级。 终于发布了 1.2 版,但还有很多工作要做,目前我没有...

    最新Python3.5零基础+高级+完整项目(28周全)培训视频学习资料

    Redis hash操作 Redis 集合set 和有序集合操作 Redis 集合操作补充 Redis 发布订阅及本节作业 第12周 上节回顾 数据库介绍 mysql基本使用 mysql数据类型与创建表 mysql 增删改查 mysql 外键关联 mysql 连接查询 ...

    关于hashchangebroker和statehashable的补充文档

    jquery hash change event plugin: Internet Explorer 8, Firefox 3.6+, 和Chrome 5+里,已经提供了[removed]事件,但是在老版本的浏览器中并没有这个事件,这个插件通过定时器判断hash是否产生了变化,以便在老...

    fullswitch:全切换插件

    INTRO 简介这是一个实现满屏滚动的插件,可以配合jquery和zepto使用页面结构三层结构,参考demoOPTIONS 配置 var list = $('.fullswitch-container .fullswitch-pagelist'); //使用插件时结构层次须与本例一致,但不...

    scroll-to:滚动(垂直)到特定元素

    滚动到JQuery 插件用于在不同事件期间(垂直)滚动到特定元素。 属性[data-scroll-to-this] 将此属性添加到将滚动到的元素[data-scroll-to-this="onload"] 页面加载时滚动到该元素[data-scroll-to-this="onclick"] ...

    表单身份验证和用户管理—ASP.net通用权限框架

    它基于员工管理系统DEMO的解决方案。将它构建为原型,我可以重用于我需要身​​份验证和用户管理的简单网站,但不需要使用完整的CMS。 这是一项正在进行的工作,但目前它展示了以下内容: 用Forms进行身份验证 ...

    python入门到高级全栈工程师培训 第3期 附课件代码

    07 jquery扩展与插件 08 jquery扩展补充 09 本周作业轮播图以及思路 第45章 轮播图片css部分 轮播图片js部分 第46章 01 数据库与dbms的概念 02 sql规范 03 数据库操作DDL 04 python s3 day46 mysql的数据类型 05...

Global site tag (gtag.js) - Google Analytics