我的标题不知道描述得准确不准确!
问题是:我现在做了一个模拟的进度条,然后通过在页面上点一button,出现进度条等待,同时在调用进度条的函数中,想同时时之访问一写好的servlet,由它去做真正的处理!
我开始的做法是,在点button时调用的js函数中加入一类似window.location= "../servlet/doaction";结果发现这样一来,这个页面会重定向!我本意是想展示进度条的同时,又想使之访问一链接,使后台处理!大家看看有什么理想,可行的办法呢??
问题是:我现在做了一个模拟的进度条,然后通过在页面上点一button,出现进度条等待,同时在调用进度条的函数中,想同时时之访问一写好的servlet,由它去做真正的处理!
我开始的做法是,在点button时调用的js函数中加入一类似window.location= "../servlet/doaction";结果发现这样一来,这个页面会重定向!我本意是想展示进度条的同时,又想使之访问一链接,使后台处理!大家看看有什么理想,可行的办法呢??
解决方案 »
- json如何处理有主外键关系的数据
- jsp刷新问题
- 如何提高实时监控类网站的查询性能
- 变量名和值都对,能从html登陆,自己写程序就不行
- 用js定義的地址變量 符號問題
- Flexigrid控件设置蓝色风格!
- 提交的表单 如何在通过验证的函数后 在新窗口打开要提交的页面!并关闭此页面(就10分了)
- 关于<jsp:include page=...的问题
- 狂狂狂狂推荐史上最好的与JBUILDER结合的JSP IDE:http://www.m7.com/products/enterprise.html
- 关于Session的问题,在线。
- session 不到时间就超时
- 什么叫Struts,什么叫MVC?
我刚才尝试着这样做也不行:
把button放到一个form里,然后在点击button要调用的js函数中通过
var test = document.getElementById("asy");
test.action ="http://localhost:8080/Servlet/doAction";
……(产生进度条的代码)这样也仍然不行,没有访问http://localhost:8080/Servlet/doAction
因为我实际上并没和server端通讯啊,我只是简单是通过一个点击出现一个等待的画面,同时打开一个新的联接,难道要通过ajax去get吗?
简单的说,我点一button,这一动作触发2件事,一件是产生等待的进度条,当然这里是模拟的!
另外一件事就去访问http://localhost:8080/Servlet/doAction。而访问http://localhost:8080/Servlet/doAction我又不希望重新打开一窗口!
因为你要同时显示进度条,并在后面进行servlet的处理,所以ajax
所以你要这样的效果的话,只能新写一个页面,在这个页面一开始就执行模拟进度条函数,并在下面执行servlet调用,调用结束后可以反馈给javascript停止进度条.
只在同一个页面是无法实现的,因为java代码必须是要在服务器端编译过才能运行的,而javascript在客户端脚本中,它无法生成java代码断,亦无法运行java函数,只有向服务器请求.
具体做法是在点击按钮的时候提交表单,同时将页面换掉。
怎么换呢?把输入按钮隐藏,显示进度条!简单style.display='none'的事情。
存在某个进度条样式的东西(不可见),点击按钮时让进度条显示,并提交数据到本页面(即不设置form或链接的target属性)。提交的数据处理完毕以后,浏览器会负责刷新本页面(进度条自然没有了)。