Changeset 20588


Ignore:
Timestamp:
05/03/16 23:37:31 (9 years ago)
Author:
dlcheng
Message:

CHG (javascript): New streamed binary response handling for ec2_issm_dev cluster.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/m/classes/clusters/generic.js

    r20353 r20588  
    4949                var oReq = new XMLHttpRequest();
    5050                oReq.open("POST", this.url, true);
    51                 oReq.responseType = 'arraybuffer';
    52 
     51                oReq.responseType = 'application/octet-stream';
     52                oReq.position = 0
     53       
     54                //TODO: dynamic progress update with package lengths and parsing
     55                oReq.onprogress = function (oEvent) {
     56                        var newResponse = oReq.responseText;
     57                        if (newResponse.length == 13) { //"Starting" length as encoded in base64 length
     58                                $(".run-button").html("COMPUTING...").prop("disabled", true);
     59                                console.log("base64 repsonse: " + newResponse + " string response: " + window.atob(oReq.responseText));
     60                        }
     61                };
     62               
    5363                oReq.onload = function (oEvent) {
    54                         var returnBuffer = new Uint8Array(oReq.response.slice());
     64                        //get context to this.str2ab to avoid duplciation
     65                        function str2ab(str) {
     66                                var buf = new Uint8Array(str.length);
     67                                for (var i=0, strLen=str.length; i < strLen; i++) {
     68                                        buf[i] = str.charCodeAt(i);
     69                                }
     70                                return buf;
     71                        } //}}}
     72                        var buffer2 = str2ab(window.atob(oReq.responseText.slice(13)));                 
     73                        var returnBuffer = new Uint8Array(buffer2);
    5574                        var returnBuffer_size=returnBuffer.byteLength;
    56                         md.results= parseresultsfrombuffer(returnBuffer,returnBuffer_size);
     75                        try {
     76                                md.results= parseresultsfrombuffer(returnBuffer,returnBuffer_size);
     77                        }
     78                        catch (e) {
     79                                console.log(e);
     80                        }
    5781                        callbackfunction();
    5882                };
Note: See TracChangeset for help on using the changeset viewer.