[ https://issues.apache.org/jira/browse/THRIFT-1087?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13004623#comment-13004623 ]
Roger Meier commented on THRIFT-1087: ------------------------------------- This would be a great improvement for the JavaScript bindings! Could you provide a patch? > Nonblocking asynchronous JS services > ------------------------------------ > > Key: THRIFT-1087 > URL: https://issues.apache.org/jira/browse/THRIFT-1087 > Project: Thrift > Issue Type: New Feature > Components: JavaScript - Compiler, JavaScript - Library > Affects Versions: 0.6 > Reporter: Henrique Mendonca > Assignee: Henrique Mendonca > Labels: javascript, thrift > 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