sorry. Problem was with PHP session locking. Last request takes a
while and during this process it locked PHP session. Now it is fixed
and everything works fine.

2008/10/1 Modestas <[EMAIL PROTECTED]>:
> Hello, I'm having problems with web page locks.
>
> When Ajax.Request is started and the user clicks on any link on the
> page while request is still running, then page is locked until Request
> will finish.
> I tryed all prototype versions and the newest one 1603 also. Can
> somebody help me solve this issue, because it renders all site useless
> until the request finishes. And it may take a while.
>
> Can somebody help me? Please.
>
> I use first Ajax.Request
>
> var ajaxRequest = new Ajax.Request(this.getHandleUrl, {
>        method: 'post',
>        evalJS : false,
>        asynchronous : true,
>        parameters: paramsStr,
>        onSuccess: function(transport) {
>            var response = eval('(' + transport.responseText + ')');
>            controller.statusPanel.stop();
>            if (response.status == 1) {
>                controller.handle = response.handle;
>                controller.updateResults(controller.offset);
>            } else {
>                if (response.redirectLink != undefined) {
>                    window.location=response.redirectLink;
>                }
>                controller.resultRenderer.drawNoResults();
>            }
>        },
>        onException : function(request, e){
>            //alert(e);
>            //todo: implement further error handling
>            controller.statusPanel.stop();
>        }
>    });
>
> ////////////////////////////////////////////////////////////////////////////////////////
> onSuccess i start updateResults(). It creates periodicalUpdater and
> calls server until server sends end of results signal. Then it draws
> results. Terminates periodicalupdater.
>
> periodicalUpdater = new Ajax.PeriodicalUpdater('', updateUrl,
>      {
>        method: 'post',
>        parameters: paramsStr,
>        frequency: 2,
>        asynchronous : true,
>        evalJS : false,
>        evalJSON : false,
>        decay: 2,
>        onException : function(request, e){
>            periodicalUpdater.stop()
>            if (controller.testMode) {
>                //alert(e);
>            }
>            controller.statusPanel.stop();
>        },
>        insertion: null,
>        onSuccess : function(transport) {
>
>                var response = eval('(' + transport.responseText +
> ')');
>                var tripsResult = response.results;
>                controller.tripsResult = tripsResult;
>
>                if (response.status != 1) {
>                    if (controller.testMode) {
>                        //alert('error on PHP side');
>                        //todo: implement further error handling
>                    }
>                    periodicalUpdater.stop();
>                    controller.statusPanel.stop();
>                        if (response.redirectLink != undefined)
>                        {
>                            window.location=response.redirectLink;
>                        }
>                }
>
>                var adults = $F('adults_count');
>                var children = $F('children_count');
>                var babies = $F('infants_count');
>                controller.draw(tripsResult);
>                if (tripsResult.searchStatus == 1) {
>                    controller.stopSearch();
>                    if (tripsResult.flightResultCount == 0) {
>                        controller.resultRenderer.drawNoResults();
>                    } else {
>                        //check if verify must be launched
>
>                        if (adults > 1 || children > 0 || babies > 0)
> {
>                            controller.startVerify();
>                        }
>                    }
>                }
>        }
>      });
>
>
> again, if more specific update on retrieved results are needed - i
> launch another ajax.Request
> verifyRequest = new Ajax.Request(this.verifyUrl, {
>        method: 'post',
>        asynchronous : true,
>        evalJS : false,
>        parameters: paramsStr,
>        onSuccess: function(transport) {
>            var response = eval('(' + transport.responseText + ')');
>            response = eval('(' + transport.responseText + ')');
>            if (response.status == 1) {
>
> controller.resultRenderer.drawResults(response.results);
>            } else {
>                if (response.redirectLink != undefined)
>                {
>                    window.location=response.redirectLink;
>                }
>            }
>            controller.statusPanel.stop();
>        },
>        onException : function(request, e){
>            controller.statusPanel.stop();
>            //todo: implement further error handling
>        }
>    });
>
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Prototype & script.aculo.us" group.
To post to this group, send email to prototype-scriptaculous@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/prototype-scriptaculous?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to