[心缘地方]同学录
首页 | 功能说明 | 站长通知 | 最近更新 | 编码查看转换 | 代码下载 | 常见问题及讨论 | 《深入解析ASP核心技术》 | 王小鸭自动发工资条VBA版
登录系统:用户名: 密码: 如果要讨论问题,请先注册。

[整理]浏览器的后退按钮按下时,表示错误画面。

上一篇:[论坛帖]买二手房需要注意什么?
下一篇:[论坛贴]出租司机给我上的MBA课

添加日期:2006-3-15 17:52:01 快速返回   返回列表 阅读7249次
【概要】 
浏览器的后退按钮按下时,、用户缓存的页面被表示,要限制这个操作,表示错误画面。
【结构】
1.在Session中保存用户显示的画面ID,要求显示和Session相违的画面ID,该动作无效。
(例:已经从A画面迁移到B画面,Session中pageID=B,按后退后,pageID=A<>B。) 

2.同一画面的画面更新回数保存在Sesson中,要求显示和Session中的回数相违的画面,动作无效。
(例:A画面已经刷新过N次,按后退后,更新回数<>session中的回数)

3.画面初期表示時,生成随机化Key番号,保存在Session中,要求显示和Session中Key相违的画面,动作无效.
(例:从A画面迁移到B画面,又迁移到A画面,按后退按钮直接后退到A画面后,只按规则一判断已经不对了。)
所以给每个画面一个key,保证用户浏览的每个画面都不同(单凭画面ID做不到。)

4.画面的URL附加随机化字符串,防止浏览器缓存。

    【相关方法】
        1.xx.CreateUrl()
            1.画面的URL附加随机字符串。

        2.xx.SetNextPage()    
            1.Session中设定画面ID(迁移到的画面的ID)
            2.调用xx.CreateUrl(),URL随机化

        3.CheckDispPage()
            1.画面初期表示時,画面更新回数、画面随机化Key,保存在Session和ViewState中。
                (注意这里没有保存画面ID,画面ID是由前画面调用SetNextPage()设定的。)
            2.Session中的画面ID和要显示的画面ID不符的时候,错误。         (对应规则1)
            3.画面的随机化Key存在的时候,Session和ViewState中的Key不同的时候,错误。         (对应规则3)
            4.Session的更新回数和ViewState的更新回数不符的场合,错误。         (对应规则2)
            5.如果2.~4没有问题,那么画面更新回数+1,保存到Session和ViewState中。
 

评论 COMMENTS
guest575863232
2008-7-15 15:57:30
location.replace(),将后退不到上个页面

添加评论 Add new comment.
昵称 Name:
评论内容 Comment:
验证码(不区分大小写)
Validation Code:
(not case sensitive)
看不清?点这里换一张!(Change it here!)
 
评论由管理员查看后才能显示。the comment will be showed after it is checked by admin.
CopyRight © 心缘地方 2005-2999. All Rights Reserved