[
https://issues.apache.org/jira/browse/THRIFT-1087?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13016396#comment-13016396
]
T Jake Luciani commented on THRIFT-1087:
----------------------------------------
Can you add a check to error gracefully is jQuery is not detected?
> 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.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