[ 
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

Reply via email to