学习分享——location.hash的用法「建议收藏」

学习分享——location.hash的用法「建议收藏」【学习分享】location.hash的用法location对象:设置或获取当前URL的信息使用location对象可以设置或返回URL中的一些信息,一个完整的URL地址的格式为:协议://主机:端口

大家好,又见面了,我是你们的朋友全栈君。

学习分享】location.hash的用法

location对象:设置或获取当前URL的信息

使用location对象可以设置或返回URL中的一些信息,一个完整的URL地址的格式为:
协议://主机:端口/路径名称?搜索条件#hash标识
其中,协议是URL的起始部分,用于指定该URL地 址所采用的通信协议,比如http、ftp等;主机是指该URL所对应的服务器的名称;端口用于指定服务器用于通信的端口号,与主机名之间使用冒号隔开; 路径名称是指该URL所对应的网页文件在服务器上的虚拟路径;如果页面中含有锚点连接,可以使用hash标志指定页面中的锚点标志,该标志以“#”开头; 搜索条件是指URL中所含有的查询条件,该查询条件以“?”开头,以“变量名称=值”的形式出现,多个查询条件之间使用连接符“&”连接。比如http://www.webtest.com/help/index.php?act=detail2#h1

利用location对象可以方便地设置或获取URL中的各种信息,本节将详细介绍location对象的一些常用属性和方法。

 

1.hash属性
【功能说明】设置或获取URL中的锚点名称,如果Web页面中使用的锚点连接,通过设置location对象的hash属性可以方便的跳转到页面中的不同部分。
【基本语法】location.hash
下面的代码演示了如何在网页中使用location对象的hash标志快速定位页面中的 内容。
<html>
<head><title>home</title></head>
<body>
<a href=”#t1″>home</a>
<a href=”#t2″>contact</a>
<a href=”#t3″>about</a>
<a name=”t1″>………</a>
<a name=”t2″>………</a>
<a name=”t3″>………</a>
</body>
</html>

当点击home链接时页面会自动跳转到name=”t1″的位置,同理点击contact,about时页面会定位到name=”t2″或name=”t3″的位置。

 

2.hash属性在富Ajax页面中的应用
很多Web应用采用Ajax技术来增强Web体验,富Ajax应用具有如下优点:
1)减少对服务器端的连接并减轻服务器端的带宽压力,页面中的图片,脚本,样式只会被下载一次。
2)减少加载延迟,用户没有必要不断重新加载页面,所有的Ajax请为都发生在当前页面中。
当然使用Ajax技术也有很明显的缺陷。对于Ajax页面来说的话,一般用一个页面来处理所有的事务,也就是说,如果你浏览到一个Ajax页面里边有意思的内容,想将它收藏起来,可是地址只有一个呀,下次你打开这个地址,还是得像以往一样不断地去点击网页,找到你想要的那个页面。另外的话,浏览器上的“前进”“后退”按钮也会失效,这于很多习惯了传统页面的用户来说,是一个很大的使用障碍。
那么,怎么用location.hash来解决这两个问题呢?其实一点也不神秘。如下例中,通过hash调整地址栏的地址,使得浏览器里边的“前进”、“后退”按钮能正常使用(实质上欺骗了浏览器)。然后再根据hash值的不同来显示不同的内容,这就使得Ajax页面的浏览趋于传统化了。
——————————————————————————————————
hash.html
——————————————————————————————————
<html>
<head>
<title>location hash</title>
</head>
<body>
<!– Just a simple navigation —>
<ul id=”navigation”>
<li><a href=”index.html”>Home</a></li>
<li><a href=”about.html”>About</a></li>
<li><a href=”service.html”>Service</a></li>
<li><a href=”contact.html”>Contact</a></li>
</ul>
<div id=”content”></div>
<script type=”text/javascript” src=”http://www.google.com/jsapi”></script>
<script>
google.load(“jquery”,”1.3.2″,{uncompressed:true});
</script>
<script>
$(document).ready(function(){
     if(window.location.hash!=””){

        var hashpage = window.location.hash.split(“#”);

        $(“#navigation a”).each(function() {

              if($(this).attr(‘href’) == hashpage[1]) {
                   $(this).addClass(“curr”);
                   return false;
              }
         });
         $(“#content”).load(hashpage[1]);
     }
     //navigation
     $(“#navigation a”).unbind(“click”).click(function(){
        var page = $(this).attr(“href”);
        $(“#content”).load(page);
        window.location.hash=”#”+page;
        return false;
     });
});

</script>
</body>
</html>
——————————————————————————————————
about.html
——————————————————————————————————
<html>
<head>
<title>about</title>
</head>
<body>
<div id=”content”>
hi, my name is bill Zhan.
</div>
</body>
</html>
——————————————————————————————————
contact.html
——————————————————————————————————
<html>
<head>
<title>contact</title>
</head>
<body>
<div id=”content”>
tel:15986773928
</div>
</body>
</html>
——————————————————————————————————
home.html
——————————————————————————————————
<html>
<head>
<title>home</title>
</head>
<body>
<div id=”content”>
Welcome to the Harray Port World!
</div>
</body>
</html>
——————————————————————————————————
service.html
——————————————————————————————————
<html>
<head>
<title>service</title>
</head>
<body>
<div id=”content”>
Go,Go,Go.
</div>
</body>
</html>

——————————————————————————————————

 

3.利用hash技术解决以上提到的Ajax的两个缺陷比较成熟的应用举例
1)Gmail
Gmail可以说是把Ajax技术用到了极致,Google采用hash来解决Ajax技术的两大缺陷。

2)Greader
Google Reader同样采用hash来解决Ajax技术的两大缺陷。通过分析URL来异步加载页面元素。

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/154364.html原文链接:https://javaforall.net

(0)
上一篇 2022年7月4日 下午2:36
下一篇 2022年7月4日 下午2:46


相关推荐

  • HTTPS IP直连问题小结

    HTTPS IP直连问题小结背景任何一个移动 APP 项目都离不开网络接入功能 提升网络接入的质量几乎是所有移动项目的需求 很多项目都会引入 HTTPDNS 作为网络接入最基础也是最重要的优化之一 HTTPDNS 的核心是后台下发某个域名对应的最优 IP 基本点的可做到就近接入 即下发该域名终端就近地同运营商的 IP 好一点的则根据线上用户实际测速数据下发最优的 IP 而终端只需在 HTTP 接入时 将 URL 中的 HOST 从域名直接替换为后台下

    2025年6月22日
    3
  • 关闭单节点oracle,oracle rac 如何正确的删除单个节点的actionlist[通俗易懂]

    关闭单节点oracle,oracle rac 如何正确的删除单个节点的actionlist[通俗易懂]1节点2使用dbca删除一个节点2节点1alterdatabasedisablethread2;3节点1验证是否已经删除一个节点数据库[03:49:06oracle(db)@rac1~]$srvctlconfigdatabase-dprodDatabaseuniquename:prodDatabasename:prodOraclehome:/u01/app/or…

    2022年10月19日
    5
  • jvm的垃圾回收_java垃圾回收方法

    jvm的垃圾回收_java垃圾回收方法上文回顾:《可能是把Java内存区域讲的最清楚的一篇文章》写在前面本节常见面试题:问题答案在文中都有提到如何判断对象是否死亡(两种方法)。简单的介绍一下强引用、软引用、弱引用、虚引用(虚引用与软引用和弱引用的区别、使用软引用能带来的好处)。如何判断一个常量是废弃常量如何判断一个类是无用的类垃圾收集有哪些算法,各自的特点?HotSpot为什么要分为新生代和老年代?…

    2025年10月27日
    6
  • Servlet账户登陆优化

    Servlet账户登陆优化

    2021年6月19日
    106
  • 操作系统进程调度实验报告心得_进程的管理和控制实验报告

    操作系统进程调度实验报告心得_进程的管理和控制实验报告题目要求一、 实验目的多道程序设计中,经常是若干个进程同时处于就绪状态,必须依照某种策略来决定那个进程优先占有处理机。因而引起进程调度。本实验模拟在单处理机情况下的处理机调度问题,加深对进程调度的理解。二、 实验内容1. 优先权法、轮转法简化假设1) 进程为计算型的(无I/O)2) 进程状态:ready、running、finish3) 进程需要的CPU时间以时间片为单位确定2. 算法描述1) 优先权法——动态优先权当前运行进程用完时间片后,其优先权减去一个常数。2) 轮转法三、

    2026年4月16日
    6
  • Mysql 主从复制 作用和原理

    Mysql 主从复制 作用和原理一、什么是主从复制?主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库,主数据库一般是准实时的业务数据库。您看,像在mysql数据库中,支持单项、异步赋值。在赋值过程中,一个服务器充当主服务器,而另外一台服务器充当从服务器。此时主服务器会将更新信息写入到一个特定的二进制文件中。并会维护文件的一个索引用来跟踪日志循环。这个日志可以记录并发送到从服务器的更新中去。当一台从服务器连…

    2022年4月19日
    41

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号