Here is a code snippet with the relevant information for the workaround using
qx.io.remote.Request.

__callRpc : function(service, params, completionFn, contextObj, cache)
{
        var req = new qx.io.remote.Request(service.url, "POST",
"application/json");
        req.setTimeout(service.timeout);
        req.setProhibitCaching(true);
        req.setAsynchronous(true);
        req.setRequestHeader("Content-Type", "application/json");

        var requestObject =
        {
                "service" : service.name,
                "method"  : service.method,
                "id"      : req.getSequenceNumber(),
                "params"  : params
        };
        req.setData(qx.util.Json.stringify(requestObject));
        req.addListener("failed", completionFn.failed ? function(e)
                {
                        completionFn.failed.call(contextObj || this, "failed", 
service, 
this.__handleCommsError(e, true));
                } : this.__handleCommsError, this);

        req.addListener("timeout", completionFn.timeout ? function(e)
                {
                        completionFn.timeout.call(contextObj || this, 
"timeout", service,
this.__handleCommsError(e, true));
                } : this.__handleCommsError, this);

        req.addListener("aborted", completionFn.aborted ? function(e)
                {
                        completionFn.aborted.call(contextObj || this, 
"aborted", service,
this.__handleCommsError(e, true));
                } : this.__handleCommsError, this);

        req.addListener("completed", function(e)
                {
                        var result = e.getContent();
                        if(this.__shouldLog(this.__logResponses.rpc, service))
                        {
                                this.__logResponse(result.result, service);
                        }
                        if(result.error)
                        {
                                e = new qx.event.type.Data();
                                e.init(result.error);
                                completionFn.failed.call(contextObj || this, 
"failed", service,
this.__handleCommsError(e, true));
                        }
                        else
                        {
                                completionFn.completed.call(contextObj || this, 
result.result, service);
                        }
                }, this);
        }
        if(this.__shouldLog(this.__logRequests.rpc, service))
        {
                this.__logRequest(req.getData(), service);
        }
        req.send();
}
-- 
View this message in context: 
http://n2.nabble.com/Memory-leak-in-IE7-using-qx.io.remote.Rpc-in-0.8.2-tp2686912p2740060.html
Sent from the qooxdoo mailing list archive at Nabble.com.


------------------------------------------------------------------------------
Register Now & Save for Velocity, the Web Performance & Operations 
Conference from O'Reilly Media. Velocity features a full day of 
expert-led, hands-on workshops and two days of sessions from industry 
leaders in dedicated Performance & Operations tracks. Use code vel09scf 
and Save an extra 15% before 5/3. http://p.sf.net/sfu/velocityconf
_______________________________________________
qooxdoo-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel

Reply via email to