我根据work of Sven Hasselbach编写了一些代码。文件可以上传,但处理需要很长时间。我们注意到,在上传每个文件之后,返回一个完整的页面并且“执行”完整的组件树。可以通过添加行frm.append( "$$ajaxid", "@none");
来抑制整页的发送,但是还有一种方法可以减少服务器上的执行吗?
我试过
frm.append( "execMode", "partial");
frm.append( "execId", "#{id:fileUpload2}");
以及$$作为名称的前缀,似乎无济于事。我还是要做进一步的测试。
有关如何在执行多文件上载时减少服务器端执行的任何提示吗?
谢谢!
更新:发送单个文件的CSJS代码
var frm = new FormData();
frm.append( "#{id:fileUpload2}", file);
frm.append( "$$viewid", dojo.byId('view:_id1__VUID').value);
frm.append( "$$ajaxid", "@none");
frm.append( "$$execmode", "partial");
frm.append( "$$execid", "#{id:fileUpload2}");
//frm.append( "$$xspsubmitid", "#{id:saveDoc}");
frm.append( "view:_id1", "view:_id1");
xhr.open("POST", "#{javascript:facesContext.getExternalContext().getRequest().getRequestURI()}", true);
xhr.send(frm);