现在的位置: 首页 > 综合 > 正文

活用锚点解决的问题(由一个简单应用想到的许多)

2013年06月14日 ⁄ 综合 ⁄ 共 884字 ⁄ 字号 评论关闭

本文参考:利用location的hash值来解决Ajax两大难题

本人javascript初学者...ajax乱用者是也...

有说的不对的地方...希望大家多多拍砖...

这几天都被这样一个问题所困扰着...

问题大致描述


页面中放置两个div...分别为 A层 和 B层...
页面初始加载时只显示A层...
有个Button利用JS操控,可将A层切换显示B层...
在显示B层的情况下...也可以切换显示A层
要求根据当前页面显示的层,刷新后保持...
即:如果当前显示是B层,刷新后显示仍然为B层...

截至到今天下午我想到的解决方案只有三种(只实现了其中第一种):

一:js操控cookie,切换层时,在cookie中保存当前页面状态。然后onload事件中读取出cookie的值。

     借此来控制刷新显示的层。

二:session,凭借想象这种方法应该可以,不过考虑会增加服务器的负荷...放弃之...

三:viewstate,由于需要用ajax传向后台...这个实现过程也仅仅是想了想而已...

 

以上三种方法都有局限性...所以有了以下方法...

在这里...感谢给与我帮助的几位前辈...(牛人啊...都是...小弟佩服...)

由Gmail中来的灵感...在Gmail使用中发现...当点击收件箱时,页面没有刷新...地址栏的地址会变成http://domian/#inbox

然后刷新之后就能返回到刚刚的收件箱中了...而不是像网易邮箱那样回到了首页...

于是开始问google...这个#就是锚点...常用于网页定位...原来我也是个HTML初学者...

然后还得到了参考文章的链接...

于是后面的过程很简单了...

切换层时...在地址栏上面加上锚点 #adiv or #bdiv

onload事件中判断...这样算是比较完美的解决了...

关于锚点的其他作用...参考文章有所介绍...不重复介绍...

大家共同进步...

 

PS.google的javascript写的牛啊...前天见识了下google日历...今天又见识了Gmail...还有首页那个华丽的导航条...

googleは神様です。

抱歉!评论已关闭.