主题:  出题:无刷新情况下提交数据到服务器并返回结果

缺缺

职务:管理员
等级:8
金币:41.0
发贴:9620
#12004/9/30 18:29:04
要求:
1.主页面不允许刷新,不能使用Frame/Iframe
2.在不违背要求1的情况下不限制使用方法,一些途径都可以
3.争取最大程度的兼容性
4.给出关键代码.不重要处可以使用伪代码


奖品:
根据方法,创意,兼容性以及代码的规范性打分,最多不超过5分.达到要求者即给予最低1分的奖励



说明:
两人使用同以方法者,先答对者为胜,但是两人发贴时间少于5妙者都算对.
本次活动仅仅是属于娱乐活动,扩展思路.
斑竹,管理员,图标用户回答请加密帖子并设置20个金币以上可见



蓝鲸

职务:版主
等级:5
金币:42.1
发贴:2614
#22004/9/30 21:11:28
斑竹出题好,晚上庆国庆就放松一下,来一个。
出要用二个陷藏文本,一个是Send值为True,另一个为NoRefresh,初始为False;
第一次,如果得到Send发出的True,NoRefresh值设为True;
第二次,刷新,如果NoRefresh值为True,就中断程序。
很简单,缺点,不能防止后退后再提交,我不得不在Session上想想办法。
<%
if Request.Form("NoRefresh") = "true" then
	Response.Write "<script laguage=javascript>alert('对不起,你不能刷新!')</script>"
	Response.End
end if
%>
<form name="form1" method="post" action="">
  <input name="NoRefresh" type="hidden" id="NoRefresh" value="<%if Request.Form("Send")="true" then%>true<%else%>false<%end if%>">
  <input name="Send" type="hidden" id="Send" value="true">
  <input name="TestBox" type="text" id="TestBox" value="试试你能不能刷新?">
  <input type="submit" name="Submit" value="提交">
</form>


非常大鱼

缺缺

职务:管理员
等级:8
金币:41.0
发贴:9620
#32004/9/30 21:34:51
汗...这个好像不是我要表达的意思...我要学学语言表达能力了...-_________-#

我的意思是...
比如登陆...
填写了用户名和密码后提交,页面不得改变,或者刷新,但是需要把数据提交到服务器,然后服务器再返回一个登陆验证结果到客户端



蓝鲸

职务:版主
等级:5
金币:42.1
发贴:2614
#42004/9/30 21:40:48

误会了,ASP.NET可以,一定用ASP?自身提交呢?

编辑历史:[此帖最近一次被 蓝鲸 编辑过(编辑时间:2004-09-30 21:49:36)]

非常大鱼

缺缺

职务:管理员
等级:8
金币:41.0
发贴:9620
#52004/9/30 21:45:12
这个跟服务器端没有关系吧.....不管asp或者.net的事啊...用.net怎们实现?......

是客户端负责提交数据,怎们服务器端怎们处理数据就不用考虑了



蓝鲸

职务:版主
等级:5
金币:42.1
发贴:2614
#62004/9/30 22:10:33
斑竹先提示一下吧,或先来个简单的,还是不太理解。


非常大鱼

缺缺

职务:管理员
等级:8
金币:41.0
发贴:9620
#72004/10/1 1:40:23
呵呵,说实话我觉得这个题目有点偏了,不过之前做一个项目,我们倒是大量的运行了这个方法来和服务器交互,就类似于QQ,MSN等客户端软件和服务器之间的交流,并目前有三个实现方法.
假设函数有一个函数PostData可以想服务器提交数据,并返回了结果
那么登陆的过程就是
function Login(){
	var username=document.fmLogin.Username.value;
	var password=md5(document.fmLogin.Password.value);
	var Data="LOGIN|"+username+"|"+password;
	var Login=Post(Data);
	if(Login){
		///登陆成功
	}
	else{
		///登陆失败
	}
}


现在的问题就是PostData函数的实现
其实这个问题发在网页编码区更好...



蓝鲸

职务:版主
等级:5
金币:42.1
发贴:2614
#82004/10/1 3:33:49
用javascript,这方面确实知道很少,很想学习一下 ;)


非常大鱼

janlay

职务:管理员
等级:7
金币:28.0
发贴:7244
#92004/10/1 11:31:20
用XML post



缺缺

职务:管理员
等级:8
金币:41.0
发贴:9620
#102004/10/1 17:10:02
我们刚开始就是用的XMLHTTP,但是有一些问题,就是程序运行中浏览器会有假死现象.另外,听说在XP Sp2下面会有安全警告,因为没有xp,所以也无法确认.


另外,我要回家啦,暂时几天不能上网,回来后再说这些问题了