Not approved. This would bust "queuerequests" totally.
Request-queuing is handled (SWF) resp. should be handled (DHTML, nyi) by
the LzHTTPLoader (and LzLoader).
So what we want to have, is a single "LzHTTPDataRequest"/"LzHTTPLoader"
for normal-requesting and for queued-requesting (so we can reuse these
objects) and just for multi-requesting we need several
"LzHTTPDataRequest"- resp. "LzHTTPLoader"-objects (apparently, this
isn't fully specified, see "LzDataset#doRequest(..)" and
"LzHTTPDataProvider#doRequest(..)".)
Also see LPP-4584 for "LzDataset.dsloadDel" issues we once had:
We're unregistering the "dsloadDel" in
"LzDataset#handleDataResponse(..)" because of "multirequest" (I think).
[But "multirequest" itself needs some reworking, because at the moment
it leads to excessive memory consumption (we create a new
"LzHTTPDataRequest" object for every request and we store it in the
subnodes-array of the dataset, but we never release the
datarequest-instances. For the same reason, we shouldn't create a new
"LzHTTPDataRequest" in case of queued-requests...)]
function doRequest() {
[..]
if (this.dsloadDel == null) {
this.dsloadDel = new LzDelegate(this, "handleDataResponse",
dreq, "onstatus");
} else if (this.multirequest) {
this.dsloadDel.register(dreq, "onstatus");
}
[..]
}
function handleDataResponse (datareq) {
if (this.dsloadDel != null && this.multirequest) {
//TODO: unregistering just for multirequest -> reason: prevent
memory-leaks?
this.dsloadDel.unregisterFrom(datareq.onstatus);
}
[..]
}
On 11/22/2007 4:25 PM, Henry Minsky wrote:
Change 20071122-hqm-2 by [EMAIL PROTECTED] on 2007-11-22 10:19:28 EST
in /cygdrive/c/users/hqm/openlaszlo/trunk/WEB-INF/lps/lfc
for http://svn.openlaszlo.org/openlaszlo/trunk/WEB-INF/lps/lfc
<http://svn.openlaszlo.org/openlaszlo/trunk/WEB-INF/lps/lfc>
Summary: fix for bug with ondata event with queuerequests
New Features:
Bugs Fixed: LPP-5144
Technical Reviewer: andre
QA Reviewer: pbr
Doc Reviewer:
Documentation:
Release Notes:
Details:
If queuerequests is true, we need to allocate a new datarequest object
for each request, otherwise
the secondincoming response will not send an ondata event, because the
handler which is registered
for the datarequest onstatus event is being unregistered by the
handleDataResponse routine
Tests:
test case in bug report
test/lfc/data/alldata.lzx (we need to add this test case to the
regression tests!)
Files:
M data/LzDataset.lzs
Changeset: http://svn.openlaszlo.org/openlaszlo/patches/20071122-hqm-2.tar