Details
-
Type: Improvement
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: 1.7
-
Fix Version/s: 1.7.1
-
Component/s: ICE-Components
-
Labels:None
-
Environment:All
Description
The inputFile component currently requires asynchronous mode to be able to depict file upload progress, and file upload completion. The actual file uploading process itself does not require asynchronous mode. Customers want it to work properly in synchronous mode as well, so I've compiled a list of options to allow for that, as a starting point for our discussion today.
A.ICE-2102 Most people who choose to stick with synchronous mode, do so for scalability reasons, since they can't support a blocking connection for every user, all the time. If we allow for granular [a]synchronosity, that switches from sync to async only as needed, like while a file upload component is currently being displayed, or currently uploading, then that might be sufficiently scalable.
B.ICE-2860 When a file is being uploaded, it currently is via a POST within an IFRAME. That means that the upload request will result in a response, being rendered right back to that IFRAME. Right now that's just the Javascript to do a document.write(), to generate the proper DOM structure for the IFRAME contents to allow for the next upload. But, we might be able to render Javascript, or set a cookie, or something that would, even with https, be able to tell the whole view to request the updated DOM from the server.
C. This would be a variant of option B, where instead of updating the whole view, we would just have the file upload completion UI, and maybe even the file upload progress UI right in that IFRAME, so that the UploadServer's response would be sufficient. That would be different from the current method of using an ice:outputProgress component, with bean glue code.
D.ICE-2224 When in synchronous mode, don't even render the inputFile within an IFRAME, but just render it right into the existing page. That would mean that the inputFile would have to be in a form. And there's the unknowns surrounding doing the upload post, since we don't know if that would do a regular HTTP POST or an Ajax POST, so would that break ICEfaces or not? Also, this would only allow for a file upload completion update, not progress updates. And the rest of the user interface would be unresponsive while the upload was happening.
A.
B.
C. This would be a variant of option B, where instead of updating the whole view, we would just have the file upload completion UI, and maybe even the file upload progress UI right in that IFRAME, so that the UploadServer's response would be sufficient. That would be different from the current method of using an ice:outputProgress component, with bean glue code.
D.
Issue Links
- depends on
-
ICE-2860 InputFile IFRAME render sync mode update javascript
- Closed
Activity
- All
- Comments
- History
- Activity
- Remote Attachments
- Subversion