本文参考:利用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は神様です。