请教javascript执行同步的问题

great_king 2008-05-04 04:23:27
呵呵,这个题目很怪。起码我自己觉得有点怪怪的。不过确实找不到更合适的题目来表达啦。
我的问题是这样的,由于业务需要我要在一个弹出窗口操作。例如:填写增加、修改等内容。填写完成后
提交服务器,然后再刷新父页面。代码如下:


function sx()
{
//提交表单
document.forms[0].submit();
//调用父页面显示结果集
window.opener.location.href="/examine/ylgz.do?po=showfind";
window.close();

}



问题在于,服务器处理需要时间,而javascript执行并不理会服务器是否处理完成,它会在提交数据完成后马上执行刷新。
这个时候如果服务器没有处理完成,那么刷新父页面的结果就不正确。
我分析前台页面显示和后台数据处理是由不同线程处理的,而它们之间没有互斥关系。所以不能同步执行。
那么有没有办法提交处理完成后再执行刷新呢?

...全文
762 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
great_king 2008-05-05
  • 打赏
  • 举报
回复
4楼的方法成功。散分
great_king 2008-05-05
  • 打赏
  • 举报
回复
3楼是说设置一个状态判断是否服务器执行完?能说的再详细些吗?
4楼的办法似乎也可行。试试看。
oxoxo 2008-05-04
  • 打赏
  • 举报
回复
当我是菜鸟的时候,我也为这个问题苦恼过

你这个步骤是错的
应该是以下流程
首先执行document.forms[0].submit();
执行以上步骤后,后台服务器处理数据(编辑,修改)
然后转向一个新页面(当前页面也可以)
在新页面执行
window.opener.location.href="/examine/ylgz.do?po=showfind";
window.close();
这样就不会再有同步的问题
UnknowREN 2008-05-04
  • 打赏
  • 举报
回复
document.forms[0].submit();
这个http状态应该可以取吧,如果是200,就执行你后面的,其他状态根据情况进行处理

我觉得submit完了,你后面的代码得以执行的条件就是服务器接收并处理完毕吧
great_king 2008-05-04
  • 打赏
  • 举报
回复
继续研究
Shine_Panda 2008-05-04
  • 打赏
  • 举报
回复
你可以用模式(showModelDialog())窗口 当提交操作子窗体 主窗体用户就无法进行操作。

67,538

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧