[ https://issues.apache.org/jira/browse/THRIFT-1087?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13016562#comment-13016562 ]
Hudson commented on THRIFT-1087: -------------------------------- Integrated in Thrift #113 (See [https://hudson.apache.org/hudson/job/Thrift/113/]) THRIFT-1087 Nonblocking asynchronous JS services Patch: Henrique Mendonca > Nonblocking asynchronous JS services > ------------------------------------ > > Key: THRIFT-1087 > URL: https://issues.apache.org/jira/browse/THRIFT-1087 > Project: Thrift > Issue Type: Sub-task > Components: JavaScript - Compiler, JavaScript - Library > Affects Versions: 0.6 > Reporter: Henrique Mendonca > Assignee: Henrique Mendonca > Labels: javascript, thrift > Attachments: THRIFT-1087-jquery-async-qunit-v2.patch, > THRIFT-1087-jquery-async-qunit.patch > > Original Estimate: 168h > Remaining Estimate: 168h > > The current js lib uses an ajax synchronous request, which is not very > typical for javascript. Since the current browsers' js are still single > threaded, they block the whole website until we get an answer from the server. > Current trunk: > {quote} > MyServiceClient.prototype.getMyObject = function (objectId) \{ > this.send_getMyObject(objectId) //send request and wait for response > return this.recv_getMyObject() //interpret response > } > {quote} > I propose something like this: (pseudo-code + extra verbose for better > understanding) > {quote} > MyServiceClient.prototype.getMyObject = function (objectId, onSuccessHandler) > \{ > if ( ! onSucessHandler) \{ > this.send_getMyObject(objectId) //send request and wait for response > return this.recv_getMyObject() //interpret response > } else \{ > Thrift.HttpRequest.post( send_getMyObject(objectId) ); //send request > asynchronously > Thrift.HttpRequest.onreadystatechange = function () \{ onSuccessHandler( > this.recv_getMyObject() ); } //call handler on success > return Thrift.HttpRequest //return request object, as user might need > to attach an onError handler > } > } > {quote} > I think it should be something similar to the jQuery post: > http://api.jquery.com/jQuery.post/ > and it will still keep the compatibility with legacy code. > Any thoughts or ideas? -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira