rockrep
2009-Jul-12 07:06 UTC
RJS render errors when user clicks away before render completes
We have an issue where we are using RJS templates to render the results of Ajax calls. Everything works fine so long as the user waits for the render to occur. However, if the user initiates the request and the RJS template is still in the process of rendering, but hasn''t completed, and the user clicks a different link, then we get a Javascript alert popup "Unexpected Server Error" for each line of RJS that has not yet completed. There is no stacktrace in the development (or production) log. Once the alert(s) are cleared, the secondary request completes fine. What is best practice for guarding against this situation, or at a minimum prevent the alert popup? We tried putting begin/rescue blocks around the RJS but that did not seem to help. Any pointers appreciated. Thanks, Michale
Frederick Cheung
2009-Jul-12 10:25 UTC
Re: RJS render errors when user clicks away before render completes
On Jul 12, 8:06 am, rockrep <rock...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> We have an issue where we are using RJS templates to render the > results of Ajax calls. Everything works fine so long as the user > waits for the render to occur. However, if the user initiates the > request and the RJS template is still in the process of rendering, but > hasn''t completed, and the user clicks a different link, then we get a > Javascript alert popup "Unexpected Server Error" for each line of RJS > that has not yet completed. There is no stacktrace in the > development (or production) log. Once the alert(s) are cleared, the > secondary request completes fine. > > What is best practice for guarding against this situation, or at a > minimum prevent the alert popup? We tried putting begin/rescue > blocks around the RJS but that did not seem to help. >If the errors are javascript errors then it''s normal that trying to rescue things in the RJS did nothing: your rjs template just generates javascript that is executed by the browser at a later point in time. Have you tried using firebug (or similar) to work out what is actually happening? Fred> Any pointers appreciated. > > Thanks, > > Michale
JangoSteve
2009-Jul-13 02:05 UTC
Re: RJS render errors when user clicks away before render completes
Javascript errors happen all the time due to weird browsing behavior and usually go unnoticed by typical users (unless of course it''s being caused by your actual code). The fact that the error pops up in an alert window is a debugging feature of the Development environment in Rails. In other words, when your site is in Production mode on the server, the error should not trigger an alert window at all, and the error should generally go unnoticed by the user. And if they''re clicking to another page, then the error should have no effect on their browsing experience. Unless of course you are getting these alerts in production mode, in which case that''s a whole other situation. -Steve On Jul 12, 3:06 am, rockrep <rock...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> We have an issue where we are using RJS templates to render the > results of Ajax calls. Everything works fine so long as the user > waits for the render to occur. However, if the user initiates the > request and the RJS template is still in the process of rendering, but > hasn''t completed, and the user clicks a different link, then we get a > Javascript alert popup "Unexpected Server Error" for each line of RJS > that has not yet completed. There is no stacktrace in the > development (or production) log. Once the alert(s) are cleared, the > secondary request completes fine. > > What is best practice for guarding against this situation, or at a > minimum prevent the alert popup? We tried putting begin/rescue > blocks around the RJS but that did not seem to help. > > Any pointers appreciated. > > Thanks, > > Michale
rockrep
2009-Jul-28 03:26 UTC
Re: RJS render errors when user clicks away before render completes
> Unless of course you are getting these alerts in production mode, in > which case that''s a whole other situation. > > -SteveFred and Steve. Many thanks for the replies. My apologies for not following up sooner but other priorities arose. I finally tracked this down to an alert thrown by our code. We were generating an alert when calling JQuery.ajaxSetup when handling the XMLHttpRequest Object UNSENT error status. -Michael