Well yes and no. The Request object is itself not a singleton, BUT... when
you issue the send() method it does a getInstance() of a RequestQueue which
is a singleton. So technically the Request is not a singleton but it is a
single use object
    /**
     * Schedule this request for transport to server.
     *
     * The request is added to the singleton class
qx.io.remote.RequestQueue's
     * list of pending requests.
     *
     * @return {void}
     */
    send : function() {
      qx.io.remote.RequestQueue.getInstance().add(this);
    },


Jim

On Thu, Jun 18, 2009 at 1:41 AM, Matthew Gregory <
[email protected] <matthew%[email protected]>> wrote:

> I am quite sure that only being able to use a request object once is a
> limitation of most browsers.
>
> Also Jim I think you have got your terminolgy confused, Request objects
> aren't singletons. A singleton means you can only have one instance of
> that of object at any one time and you usually create them with
> .getInstance() rather than using 'new'.
>
> Jim Hunter wrote:
> > For one, a Request object is a singleton. By definition it can only be
> > used once. I assume they decided to make it a singleton because the life
> > of a Request is not clear cut. At any point in time you are not fully
> > sure if it is done doing it's job so that it can be used again. It was
> > easier to make it a singleton to reduce the amount of housekeeping code
> > needed to manage when it was done and could be used again. And I'm sure
> > the fact that it is asynchronous has a lot to due with it being a
> > singleton.
> >
> > Once you get over the fact that is can only be used once, and code
> > accordingly, you will find it's not that big of a deal.
> >
> > Jim
> >
> >
> >
> > On Wed, Jun 17, 2009 at 2:29 PM, aditya siram <[email protected]
> > <mailto:[email protected]>> wrote:
> >
> >     Hi all,
> >     It seems as though 'Request' objects can only be used once. Code
> >     that tries to reuse [1] will only send the request once. Even though
> >     I 'setData' on each button press subsequent sends do nothing.
> >     Additionally the "completed" listener also only fires the first time.
> >
> >     This is somewhat counter-intuitive and it took me a while to figure
> >     out that both the request and listener have to be freshly made [2]
> >     with each button press. Is this the intended usage?
> >
> >     thanks ...
> >     deech
> >
> >
> >
> >     [1]
> >          var req = new qx.io.remote.Request("/library", "POST");
> >
> >          button.addListener("execute", function(e) {
> >           req.setData("isbn=" + isbn.getValue());
> >           this.debug(req.getData());
> >           req.send();
> >          });
> >
> >          req.addListener("completed", function(e) {
> >           resp = qx.util.Json.parseQx(e.getContent());
> >           this.debug("done");
> >           this.debug(resp);
> >          });
> >
> >     [2]
> >         button.addListener("execute", function(e) {
> >           var req = new qx.io.remote.Request("/library", "POST");
> >           req.setData("isbn=" + isbn.getValue());
> >           this.debug(req.getData());
> >           req.send();
> >
> >           req.addListener("completed", function(e) {
> >            resp = qx.util.Json.parseQx(e.getContent());
> >            this.debug("done");
> >            this.debug(resp);
> >           });
> >          });
> >
> >
> ------------------------------------------------------------------------------
> >     Crystal Reports - New Free Runtime and 30 Day Trial
> >     Check out the new simplified licensing option that enables unlimited
> >     royalty-free distribution of the report engine for externally facing
> >     server and web deployment.
> >     http://p.sf.net/sfu/businessobjects
> >     _______________________________________________
> >     qooxdoo-devel mailing list
> >     [email protected]
> >     <mailto:[email protected]>
> >     https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
> >
> >
> >
> > ------------------------------------------------------------------------
> >
> >
> ------------------------------------------------------------------------------
> > Crystal Reports - New Free Runtime and 30 Day Trial
> > Check out the new simplified licensing option that enables unlimited
> > royalty-free distribution of the report engine for externally facing
> > server and web deployment.
> > http://p.sf.net/sfu/businessobjects
> >
> >
> > ------------------------------------------------------------------------
> >
> > _______________________________________________
> > qooxdoo-devel mailing list
> > [email protected]
> > https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
>
>
>
> ------------------------------------------------------------------------------
> Crystal Reports - New Free Runtime and 30 Day Trial
> Check out the new simplified licensing option that enables unlimited
> royalty-free distribution of the report engine for externally facing
> server and web deployment.
> http://p.sf.net/sfu/businessobjects
> _______________________________________________
> qooxdoo-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
>
------------------------------------------------------------------------------
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensing option that enables unlimited
royalty-free distribution of the report engine for externally facing 
server and web deployment.
http://p.sf.net/sfu/businessobjects
_______________________________________________
qooxdoo-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel

Reply via email to