ASP网页设计排除网页汗青纪录
asp,你就只能等着微软给你解决,它不乐意你就只好悲催。而且asp跑在windows服务器上,windows服务器跟linux比起来简直弱爆了!汗青纪录|网页 阅读器的前进按钮使得咱们可以便利地前往之前会见过的页面,它无疑十分有效。但有时分咱们不能不封闭这个功效,以避免用户打乱预定的页面会见次第。本文引见收集上可找到的各类禁用阅读器前进按钮计划,剖析它们各自的优弱点和适
用处合。
1、概述
已经有很多人问起,“如何才干‘禁用’阅读器的前进按钮?”,或“如何才干避免用户点击前进按钮前往之前浏
览过的页面?”在ASP服装论坛上,这个成绩也是问得最多的成绩之一。遗憾的是,谜底十分复杂:咱们没法禁用阅读器的前进
按钮。
起先我关于竟然有人想要禁用阅读器的前进按钮感应难以想象。后来,看到居然有那末多的人想要禁用这个前进按
钮,我也就豁然(想要禁用的只要前进按钮,不包含阅读器的行进按钮)。由于在默许情形下,用户提交表单以后可以通
事后退按钮前往表单页面(而不是利用“编纂”按钮!),然后再次编纂并提交表单向数据库拔出新的纪录。这是咱们不
愿看到的。
因而我就决意要找出防止呈现这类情形的办法。我会见了很多网站,参考了这些网站所引见的各类完成办法。假如你
常常会见ASP编程网站,本文所引见的局部内容你能够已见到过。本文的义务是把各类能够的办法都引见给人人,然后找
出最好的办法!
2、制止缓存
在我找到的很多计划中,个中有一种建议制止页面缓存。详细是利用办事器端剧本,以下所示:
<%
Response.Buffer = True
Response.ExpiresAbsolute = Now() - 1
Response.Expires = 0
Response.CacheControl = "no-cache"
%>
这类办法十分无效!它强迫阅读重视新会见办事器下载页面,而不是从缓存读取页面。利用这类办法时,编程者的主
要义务是创立一个会话级的变量,经由过程这个变量肯定用户是不是仍然可以检查谁人不合适经由过程前进按钮会见的页面。因为浏
览器不再缓存这个页面,当用户点击前进按钮时阅读器将从头下载该页面,此时法式就能够反省谁人会话变量,看看是不是
应当答应用户翻开这个页面。
例如,假定咱们有以下表单:
<%
Response.Buffer = True
Response.ExpiresAbsolute = Now() - 1
Response.Expires = 0
Response.CacheControl = "no-cache"
If Len(Session("FirstTimeToPage")) > 0 then
&single; 用户已会见过以后页面,如今是再次前往会见。
&single; 排除会话变量,将用户重定向到登录页面。
Session("FirstTimeToPage") = ""
Response.Redirect "/Bar.asp"
Response.End
End If
&single; 假如法式运转到这里,申明用户可以检查以后页面
&single; 以下入手下手创立表单
%>
<form method=post action="SomePage.asp">
<input type=submit>
</form>
咱们借助会话变量FirstTimeToPage反省用户是不是是第一次会见以后页面。假如不是第一次(即Session
("FirstTimeToPage")包括某个值),那末咱们就排除会话变量的值,然后把用户从头定向到一个入手下手页面。如许,当表单
提交时(此时SompePage.asp被翻开),咱们必需付与FirstTimeToPage一个值。即,在SomePage.asp中咱们需求加高低面
的代码:
Session("FirstTimeToPage") = "NO"
如许,已翻开SomePage.asp的用户假如点击前进按钮,阅读器将从头恳求办事器下载页面,办事器反省到Session
("FirstTimeToPage")包括了一个值,因而就排除Session("FirstTimeToPage"),并把用户重定向到其他页面。固然,一切
这一切都需求用户启用了Cookie,不然会话变量将是有效的。(有关该成绩的更多申明,请拜见For session variables
to work, must the Web visitor have cookies enabled?)
别的,咱们也能够用客户端代码使阅读器不再缓存Web页面:
<html>
<head>
<meta http-equiv="Expires" CONTENT="0">
<meta http-equiv="Cache-Control" CONTENT="no-cache">
<meta http-equiv="Pragma" CONTENT="no-cache">
</head>
假如利用下面的办法强迫阅读器不再缓存Web页面,必需注重以下几点:
只要在利用平安毗连时“Pragma: no-cache”才避免阅读器缓存页面。关于不受平安回护的页面,“Pragma: no-cache”
被视为与“Expires: -1”不异,此时阅读器仍然缓存页面,但把页面标志为当即过时。
在IE 4或5中,“Cache-Control”META HTTP-EQUIV标志将被疏忽,不起感化。
在实践使用中咱们可以加上一切这些代码。但是,因为这类办法不克不及合用于一切的阅读器,所所以不保举利用的。但
假如是在Intranet情况下,办理员可以掌握用户利用哪一种阅读器,我想仍是有人会利用这类办法。
3、其他办法
接上去咱们要会商的办法今后退按钮自己为中间,而不是阅读器缓存。这儿有一篇文章Rewiring the Back Button很
值得参考。不外我注重到,假如利用这类办法,固然用户点击一下前进按钮时他不会看到之前输出数据的页面,但只需点
击两次就能够,这可不是咱们但愿的后果,由于良多时分,刚强的用户老是可以找到绕过预防办法的举措。
别的一种禁用前进按钮的举措是用客户端JavaScript翻开一个没有东西条的窗口,这使得用户很难前往前一页面,但
不是不成能。一种更平安但相当末路人的办法是,当表单提交时翻开一个新的窗口,与此同时封闭表单地点的窗口。但我觉
得这类办法不值得仔细思索,由于咱们总不克不及让用户每提交一个表单就翻开一个新窗口。
那末,在谁人咱们不想让用户前往的页面是不是也能够到场JavaScript代码呢?在这个页面中到场的JavaScript代码可
用来发生点击行进按钮的后果,如许也就抵消了用户点击前进按钮所发生的举措。用于完成该功效的JavaScript代码以下
所示:
<script language="JavaScript">
<!--
javascript:window.history.forward(1);
//-->
</script>
一样地,这类办法固然无效,但间隔“最好的办法”还差得很远。后来我又看到有人建议用location.replace从一个
页面转到另外一个页面。这类办法的道理是,用新页面的URL交换以后的汗青记载,如许阅读汗青纪录中就只要一个页面,后
退按钮永久不会变成可用。我想这能够恰是很多人所追求的办法,但这类办法仍然不是任何情形下的最好办法。利用这类
办法的实例以下所示:
<A HREF="PageName.htm" onclick="javascript:location.replace(this.href);
event.returnValue=false; ">
制止前进到本页面的链接</A>
</p>Active Server Page技术为应用开发商提供了基于脚本的直观、快速、高效的应用开发手段,极大地提高了开发的效果。在讨论ASP的安全性问题之前,让我们来看看ASP是怎么工作的。 用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。 如何更好的使自己的东西看上去很不错等等。其实这些都不是问题的实质,我们可以在实践中不断提升自己,不断充实自己。 在平时的学习过程中要注意现学现用,注重运用,在掌握了一定的基础知识后,我们可以尝试做一些网页,也许在开始的时候我们可能会遇到很多问题,比如说如何很好的构建基本框架。 另外因为asp需要使用组件,所以了解一点组件的知识(ADODB也是组件) 学习ASP其实应该上升到如何学习程序设计这种境界,其实学习程序设计又是接受一种编程思想。比如ASP如何学习,你也许在以前的学习中碰到过。以下我仔细给你说几点: 多看多学多思。多看一些关于ASP的书籍,一方面可以扩展知识面一方面可以鉴借别人是如何掌握、运用ASP的;多学善于关注别人,向同学老师多多学习,不论知识的大小;多思则是要将学到的知识灵活运用。 最近在学asp,不要问我为什么不直接学.net,因为公司网站是asp做的所以有这个需要,卖了本书asp入门到精通,对里面的六大内置对象老是记不住,还有很多属性和方法看的头晕。 我可以结合自己的经验大致给你说一说,希望对你有所帮助,少走些弯路。 Server:这个表示的服务器,操作服务器的一些东西使用这个,如Server.Mappath转换服务器路径,Server.CreateObject实例化一个组件 ASP主要是用好六个对象,其实最主要的是用好其中两个:response和request,就可以随心所欲地控制网页变换和响应用户动作了。 完全不知道到底自己学的是什么。最后,除了教程里面说的几个例子,还是什么都不会。 运用ASP可将VBscript、javascript等脚本语言嵌入到HTML中,便可快速完成网站的应用程序,无需编译,可在服务器端直接执行。容易编写,使用普通的文本编辑器编写,如记事本就可以完成。由脚本在服务器上而不是客户端运行,ASP所使用的脚本语言都在服务端上运行。 兴趣爱好,那么你无须学编程,申请一个域名和空间,在网上下载一些免费开源的CMS系统,你不用改代码,只须熟悉它们的后台操作,像office一样简单方便,很快就能建一个站点,很多站长都是这样做的 下面简单介绍一下我学习ASP的方法,希望对想学习ASP的朋友有所帮助... 先学习用frontpage熟悉html编辑然后学习asp和vbscript建议买书进行系统学习 先学习用frontpage熟悉html编辑然后学习asp和vbscript建议买书进行系统学习 Server:这个表示的服务器,操作服务器的一些东西使用这个,如Server.Mappath转换服务器路径,Server.CreateObject实例化一个组件 ASP主要是用好六个对象,其实最主要的是用好其中两个:response和request,就可以随心所欲地控制网页变换和响应用户动作了。 多看多学多思。多看一些关于ASP的书籍,一方面可以扩展知识面一方面可以鉴借别人是如何掌握、运用ASP的;多学善于关注别人,向同学老师多多学习,不论知识的大小;多思则是要将学到的知识灵活运用。
页:
[1]