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

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

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

Unless of course you are getting these alerts in production mode, in which case that's a whole other situation.

-Steve

Fred 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