ASP.NET AJAX pageLoad()和JavaScript window.onload有什么不同?

前端之家收集整理的这篇文章主要介绍了ASP.NET AJAX pageLoad()和JavaScript window.onload有什么不同?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用ASP.NET AJAX,并希望了解这两个代码段之间的区别:
function pageLoad(sender,eventArgs) { }

window.onload = function() { }

>他们的行为是一样的吗?
还是一个叫另一个?
>还是会自动调用另一个?

解决方法

一些事情要先注意MS发明了一种名为 Sys.Application的“客户端运行时对象”。它处理在页面的[clientside]寿命期间提升初始化,加载和卸载事件,如下所示:

> Sys.Application.initialize()开始生命周期的初始部分。这个initialize()的所有客户端AJAX控件,之后他们准备与程序交互
> Sys.Application开始负载生命周期的一部分,调用订阅此事件的所有处理程序
>最后,它调用全局函数pageLoad(如果定义了一个)

对于每个部分(即AJAX UpdatePanel)回发,重复步骤2)和3)。

所以最后的答案:pageLoad只是一个方便的快捷方式Sys.Application.add_load()

关于它与window.onload的关系,但事情开始变得有趣。基本上,MS需要window.onload才能在init阶段完成之后才能启动。但您无法控制浏览器何时触发onload,因为它与“内容加载”有关。这被称为“the window.onload problem”

onload event fires after all page
content has loaded (including images
and other binary content). If your
page includes lots of images then you
may see a noticeable lag before the
page becomes active.

所以他们只是发明了自己的“特殊”功能,在他们的事件生命周期的正确时间开火,并将其称为“pageLoad”。而他们用来启动这个自定义事件生命周期的技巧是place the call to Sys.Application.initialize() just before the closing </form> tag.服务器端运行时这样做。精明的读者会注意到,这个技巧允许MS解决window.onload问题,因为你放入pageLoad的任何代码将独立于二进制内容(w/ one rare catch for IE)。

>他们的行为是一样的吗?

在概念上是的,实际上根本不是因为说window.onload的问题。唯一的规则是,您应该只在pageLoad中放置与AJAX控件进行交互的代码,因为window.onload遵循自己的事件轨迹。

>还是一个叫另一个?

他们完全是100%独立。

>还是会自动调用另一个?

如果你定义它们,它们将被调用

原文链接:https://www.f2er.com/aspnet/252455.html

猜你在找的asp.Net相关文章