asp实现自动循环提交表单

问题如下:一个很标准的表单,现在需要定时、自动循环提交。语言采用asp,不能使用.net。用.net谁都会。如果上面这个问题无法解答那么另一种思路。比如我希望当有人访问了... 问题如下:
一个很标准的表单,现在需要定时、自动循环提交。
语言采用asp,不能使用.net。用.net谁都会。

如果上面这个问题无法解答那么另一种思路。
比如我希望当有人访问了我的index.asp页面的时候会框架一个页面,而这个页面有一个asp的倒计时程序,一旦访问就会启动倒计时(比如5分钟),在第一个人访问并启动倒计时之后的5分钟内其他人访问index.asp不会对那个框架页面中的倒计时造成任何影响,只有在倒计时归零之后访问才可以再次启动倒计时。
而倒计时一旦归零就启动那个自动提交表单的页面。
当然这只是我的设计,如果有更好的设计会酌情加分(100~500)
做出倒计时框架页的回答给分200以上,做出框架页和自动提交表单页面的给分250以上。
先到先得哦!我这里可有2000分呢!
★秦歌★ 同志请注意 你发的哪些内容就是我在z-blog论坛里提交的!所以不计分。

PS:决定再次提高积分 只要是言之有物回答接近的都有分。
不过!任何傻瓜复制、粘贴就算了,我不给你分你也别来这里泡这2分了!人少点还清净。

继续给思路~~~
延时么,我可以做出来,比如:
<script>
var loops = 1;
var timeout = 5;
var tmpobj = setInterval("addtime()",1000);
function addtime() {
if(loops>=timeout) {
clearInterval(tmpobj);
form1.submit();
}
form1.sss.value = (timeout-loops) + "秒后自动提交表单"
loops++;
}
</script>
不过这是在表单页的延时并提交。
haoyeeh KingsNet备案了,均有+分
正在对KingsNet jinglie的回答进行对比测试。请稍候
展开
 我来答
百度网友f46736942
2007-01-15 · TA获得超过951个赞
知道小有建树答主
回答量:255
采纳率:0%
帮助的人:0
展开全部
”定时、自动循环提交”
用静态网页也可以做出来,用不上asp
比如用javaScript,用setInterval或setTimeOut设定5分钟执行一次
自动提交表单用form.submit();
================================================
补充:
既然楼主会用客户端延时提交表单,为什么要clearInterval(tmpobj); ?
我们在使用ASP时,尽量减少服务器的负荷,将能在客户端完成的东西放到客户端运行.
我的设计如下:
1.把index.asp弄成框架,因为这里可以不用ASP,可将它改为index.htm算了
框架代码如下:
<frameset rows="80%,*" frameborder="NO" border="0" framespacing="0">
<frame src="main.asp" name="main" scrolling="yes" >
<frame src="myForm.htm" frameborder="yes" scrolling="yes">
</frameset>
解释:
rows="80%,*"设置上下两个框架,上面的框架为主要框架,占80%的高度.
如果想隐藏第二个框架,刚设置rows="100%,*",<frame src="myForm.htm" frameborder="no" scrolling="no">

2.根据主页,我们设置了主页面为main.asp,名字你自己可以取,因为第二个框架要用到(想改要一起改),name="main"也一样.

3.下面设置一下第二个框架页(myForm.htm)的代码:
<form name="youForm" action="main.asp" target="main">
<!注:target="main"不能省,此为提交表单的目标,main代表第一个框架(name="main"),action也要和第一个框架对齐>
...</form>
<script>
var tmpobj = setInterval("addtime()",5000); //5秒一次,自己可以改成别的时间
function addtime(){ youForm.submit();}
</script>
4.这种表单很少用到,我们通常见到的,如在线人数实时统计、聊天室等用的不是form.submit(),而是定时刷新某个页面,比如:
parent.main.location.href="main.asp"//其中main为另一框架的name
或:自刷新<meta http-equiv="refresh" content="5000;url=main.asp">
5.我想,定时提交必定造成页面闪动,想不让它闪动,最好的方法就是设多几个隐藏的框架,将一个框架中的表单提交到(target=)另一个被隐藏的框架中
度老虎
2007-01-15 · TA获得超过1546个赞
知道大有可为答主
回答量:1661
采纳率:100%
帮助的人:2335万
展开全部
你那是JAVASCRIPT的延时,客户端脚本,更不能满足你的需要。
纯ASP脚本,想不出比用服务器缓存更好的方法了。
其实你按我说的方法和代码,就基本可以搞定了,试试就知道!
===================================================
1. index.asp里用iframe加入包含页,宽和高都设0,页面上看不到
<IFRAME name="autosubmit" frameborder="0" width="0" height="0" src="autosubmit.asp"></IFRAME>
2. autosubmit.asp,ASP如果没有其他组件支持,是没倒计时的,我的基本思路是:用缓存来记录第一个访问者的访问时间,以后有人访问时,比较当前时间和缓存里的时间,间隔超过五分钟就提交表单,并把缓存里的时间重置为当前时间。
具体程序可以这么写:
<%
If IsEmpty(Application("FromTime")) Then '初始化
Application.Lock()
Application("FromTime") = Now()
Application.UnLock()
Else '比较时间
If DateDiff("s", Application("FromTime"), Now()) > 300 Then '这里用s,精确到秒,即超过5分钟,自动提交表单并重置application
Application.Lock()
Application("FromTime") = Now()
Application.UnLock()
Response.Write "<FORM name='form1' method='post' action='xxx.asp'><INPUT name='para1' value='paraValue1'><INPUT name='para2' value='paraValue2'>......</FORM>" '输出临时表单并用javascript自动提交,要提交的页面、参数和参数值在这行设置好
Response.Write "<SCRIPT>document.form1.submit();</SCRIPT>"
End If
End If
%>
3. xxx.asp 上面表单里的提交页面,接收自动提交的参数并进行后续处理,具体代码就要根据你的需要来写了。
从上面的代码看,还不能完全符合你的功能需要,第五分钟要有人访问才会触发表单的提交,所以有可能要到第七、第十或者更长的时间才会处理你需要的操作。
不过纯ASP没办法延时,只能模拟一下了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
apoet
2007-01-16 · TA获得超过173个赞
知道小有建树答主
回答量:414
采纳率:0%
帮助的人:182万
展开全部
在ASP中有一个sleep函数
指定脚本的中断时间
你可以把他镶套在一个比较大的循环里
或者干脆是个死循环
如果你是想刷票的话,可以提供一个参数让他自动提交自定义的次数。
关键部分代码:
Dim cishu '定义提交的次数
cishu=request("cishu")

for i=1 to cishu
response.execute("aaa.asp?id=1&id2=2") '这里通过URL传递你表单的参数
sleep(1000) '设置时间间隔,这里为一秒
next

认真看完了楼主的要求,补充一下:
可以使用application对象
在on_Start事件使用vbscript编写一个记时器
并把时间信息储存在application("time")里
在index.asp里做一下判断
如果时间刚好为5分钟那么提交表单
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
baozi917
2007-01-19 · TA获得超过3276个赞
知道小有建树答主
回答量:1085
采纳率:0%
帮助的人:0
展开全部
<%datefile=server.mappath("udate.txt")
set fso=createobject("Scripting.FileSystemObject")
set openfile=fso.opentextfile(datefile,1)
udate=openfile.readline
openfile.close
if datediff("n",cdate(udate),now())>5 then
datastr
set creatfile=fso.createtextfile(datefile)
creatfile.writeLine(now())
creatfile.close
end if
set fso=nothing

sub datastr()'生成要执行的内容
response.Write("<form name=form1 id=form1 action=''>"&vbcrlf)
'省略表单中内容
response.Write("</form>"&vbcrlf)
response.Write("<script>document.getElementById(""form1"").submit()</script>")
end sub%>
建文本 udate.txt 内容随便写一个昨天时间如:2007-1-18 12:01:01
为了避免这部分内容影响整个网页访问速度,建议把这部分内容单独做成一个文件<iframe width="0" src="" scrolling="no" hspace="0" height="0" frameborder="0">在index.asp(或index.html)中
我没有调试 如有问题请短信联系
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
风口的大熊猫
2007-01-25 · TA获得超过451个赞
知道小有建树答主
回答量:972
采纳率:100%
帮助的人:348万
展开全部
<script>
var loops = 1;
var timeout = 5;
var tmpobj = setInterval("addtime()",1000);
function addtime() {
if(loops>=timeout) {
clearInterval(tmpobj);
GetResult();
}
function GetResult()
{
xml = new ActiveXObject("Microsoft.XMLHTTP");
var sss = document.form1.sss.value;
var post="sss";//
xml.open("POST","提交表单的地址",true);
xml.setrequestheader("content-length",post.length);
xml.setrequestheader("content-type","application/x-www-form-urlencoded");
xml.send("sss="+escape(sss))
}
</script>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(8)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式