You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@myfaces.apache.org by "Volker Weber (JIRA)" <de...@myfaces.apache.org> on 2007/02/06 18:38:05 UTC
[jira] Commented: (TOBAGO-271) Concurrent requests can result in a
full freeze
[ https://issues.apache.org/jira/browse/TOBAGO-271?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12470661 ]
Volker Weber commented on TOBAGO-271:
-------------------------------------
Hi Dennis,
the "if (this.requests.length == 1)" is correct.
if the just queued request is the only one then execute,
else wait for previous one to complete.
A freeze can happen when a request, for any reason, not completes.
I don't know if there is any timeout handling in AjaxRequests (XMLHttpRequest, ore ActiveX in IE),
I fear we need to implement a timeout in tobago.
> Concurrent requests can result in a full freeze
> -----------------------------------------------
>
> Key: TOBAGO-271
> URL: https://issues.apache.org/jira/browse/TOBAGO-271
> Project: MyFaces Tobago
> Issue Type: Bug
> Affects Versions: 1.0.9
> Environment: Internet Explorer (Firefox seems to be ok)
> Reporter: Dennis Hauser
> Attachments: screenshot-1.jpg
>
>
> When there is more than one ajax component on a page, the client somtimes freezes. It seems that if there is more than one request in the queue, the system will stop working (no submit possible). The last debug message is "Request queued!", which seems to come from the following code in tobago.js:
> Tobago.Transport = {
> requests: new Array(),
> pageSubmited: false,
> request: function(req, submitPage) {
> if (submitPage) {
> this.pageSubmited = true;
> this.requests.push(req);
> } else if (!this.pageSubmited) {
> this.requests.push(req);
> } else {
> return;
> }
> if (this.requests.length == 1) { <--------------------------- maybe this is the problem. What about "this.requests.length > 0" ?
> LOG.debug("Execute request!");
> this.requests[0]();
> } else {
> LOG.debug("Request queued!");
> }
> },
> requestComplete: function() {
> this.requests.shift();
> LOG.debug("Request complete! Queue size : " + this.requests.length);
> if (this.requests.length > 0) {
> LOG.debug("Execute request!");
> this.requests[0]();
> }
> }
> }
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.