小弟新手,请各位大哥大姐指教如题,在页面上执行post或get类型的action时,后台会来执行action所对应的方法,执行完成时return,前台的页面如何知道后台的方法return了?  也就是说在页面中有什么方法来接收后台的return就比如多文件上传的uploadify插件中有一个onComplete()方法,当文件上传完后台执行return时就会触发页面中这个onComplete(),我想问的就是类似这样的功能是怎么实现的

解决方案 »

  1.   

    如果是普通的post,必然是伴随着页面重新输出而结束的,这种情况下不需要特别搞什么JS去接收后台的事件,因为已经重新跳转到新的页面了。你说的多文件上传,一般用的是AJAX技术,那么AJAX在异步执行完毕后,就会自动调用你注册好的回调函数(也就是类似于你说的onComplete)。你首先需要先对整个Web应用的请求处理机制有完整的概念,然后再分清楚刚才我说的这两种模式的差异。不然会比较乱。
      

  2.   

    你这个可能是:FileUplaod.jsp 里面有一个隐藏<iframe></iframe>里面提交的。
    通过JS将FileUplaod.jsp里面的多个附件的表单和路径复制到隐藏<iframe></iframe>里面。然后提交iframe。return 的时候,是刷新隐藏的iframe页面,而iframe页面通过JS,再作用于主页面(FileUplaod.jsp)
    看起来就好像,没有刷新一样。实际上多附件上传,我们需要的是一次选择多个附件的功能,可惜这种功能HTML是不能实现的。只有FLASH里面有一次选择多个附件的Flash的文件选择对话框。 我们只需要这个就行了。 你得到了多个附件的本地路径,剩下的就交给HTML表单来处理了,因为JS什么都能生成。
      

  3.   

    多谢解惑,AJAX没了解过,鄙视自己一下
    其实我是想实现:通过前台页面触发后台的一个Action去打印一个文件,但是前台不知道后台什么时候打印完成,所以我就想后台打完完成时能给前台页面发送一个参数,让前台知道文件已经打印完成,有没有什么办法可以做到这个??知道的给小弟说一下