Sys.Application.add_load Fires On Each Callback

ASP.NETAjax comes with a nice way to attach to a load event of a page. To doit just call Sys.Application.add_load and pass it a function as anargument. Done. Everything works as expected... WRONG!

It comes out that add_load fires on each callback and not only whenthe page loads for the first time. That is of course a problem if youwant something to happen on page load only.

From what I've been able to learn, this behavior is by design.Although it is never mentioned in a strigh forward way in a description:

"Raised after all scripts have been loaded and after the objects in the application have been created and initialized."

There are some places in the documentation, that suggests that thisis a way it was intended to be. First of all, ASP.NET Ajax tries tomimic that ASP.NET Page life cycle and as such, fires the load eventevery time there is a callback. The other thing that makes me believe,that load's behavior is there by design is this:

"You can use the event arguments to determine whether the page isbeing refreshed as a result of a partial-page update and whatcomponents were created since the previous load event was raised."

So now I know, but I still cannot accept the naming convention.Sys.Application plainly suggests, it's a kind of singleton, and not aper load thingy.

posted @ 2010-07-29 16:29  Ethan Shan  阅读(639)  评论(0编辑  收藏  举报