首页 新闻 会员 周边 捐助

静态页面是否能判断当前是第一次进入还是刷新,不用cookie

0
悬赏园豆:10 [已解决问题] 解决于 2014-09-05 17:01

RT如果用cookie就简单了,不用的话,有没有什么方法能够区分的。

清海扬波的主页 清海扬波 | 小虾三级 | 园豆:825
提问于:2014-08-28 10:23
< >
分享
最佳答案
0

使用window.history可以确定是否第一次执行。 

收获园豆:10
519740105 | 大侠五级 |园豆:5810 | 2014-08-28 13:28

登录我用的是location.replace,所以这个方法也不行。

清海扬波 | 园豆:825 (小虾三级) | 2014-08-29 09:53

@清海扬波: 当一个页面提交到服务器的时候,会告诉服务器,这个页面访问的入口(从哪个页面点击进来的,或者在打开这个页面的时候,当前浏览器窗口正打开的网页地址)。

由于你的是静态的html,是没办法使用这个功能的(除非你让html也在服务器多一道处理工序),此时就只能通过浏览器的window.history来获取前一个页面的url地址了。而这个方案有两个问题:

1、如果前一个页面不是当前页面地址,也不好判断是否第一次打开(比如前前一个页面是呢?当然可以遍历window.history来达到目的)

2、现在的浏览器都是标签式的,如果在一个标签里打开了至少一次这个html页面,再在一个新的标签里打开,又怎么计算(我相信应该存在js中标签管理的支持,但是,我目前不知道怎么去管理)。

519740105 | 园豆:5810 (大侠五级) | 2014-08-29 09:58
其他回答(1)
0

用一个session也行啊..  九大对象都差不多吧... 呵呵, 看你作用域...

ζ  简单ヾ° | 园豆:93 (初学一级) | 2014-08-28 10:39

我是想知道有没有js对象是否能判断,比如window对象的某个属性。

支持(0) 反对(0) 清海扬波 | 园豆:825 (小虾三级) | 2014-08-28 11:04

@清海扬波: js只是对页面整个window处理哦... 你这刷新什么的, 都是对服务器请求, 请求都是到达服务器, 除了cookis就只能由服务器判断... 其实cookis的话, 原理差不多.. cookis它会保存数据到你的电脑上的.... js对象每次打开window都是会进行初始化的...它不会保存数据的哦...

支持(0) 反对(0) ζ  简单ヾ° | 园豆:93 (初学一级) | 2014-08-28 11:09
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册