当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《ASP.NETAJAXpageLoad()和JavaScriptwindow.onload有什么不同?》经验,为你挑选了1个好方法。

我正在使用ASP.NET AJAX,并希望了解这两个片段之间的区别:

function pageLoad(sender, eventArgs) { }

window.onload = function() { }

他们的行为是一样的吗?

或者是在另一个之前打电话?

或者一个会自动调用而另一个不会?

Crescent Fre.. 41

首先要注意的几件事情.MS发明了一种称为"客户端运行时对象" Sys.Application.它处理提升init,loadunload整个页面的[客户方]寿命事件,如下所示:

    Sys.Application.initialize()开始init生命周期的一部分.这initialize()是所有客户端AJAX控件,之后他们准备以编程方式进行交互

    Sys.Application开始load生命周期的一部分,调用已订阅此事件的所有处理程序

    最后,它调用全局函数pageLoad(如果定义了一个)

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

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

window.onload然而,关于它的关系,事情开始变得有趣.从本质上讲,MS需要window.onload火只init阶段已经完成.但你无法控制浏览器何时触发onload,因为它与"内容加载"相关联.这被称为" window.onload问题":

加载所有页面内容(包括图像和其他二进制内容)后,onload事件将触发.如果您的页面包含大量图像,那么在页面变为活动状态之前您可能会看到明显的延迟.

因此,他们刚刚发明了自己的"特殊"功能,可以在事件生命周期的恰当时间点亮并调用它"pageLoad".他们用来启动这个自定义事件生命周期的技巧是将调用Sys.Application.initialize()放在结束标记之前.serverside运行时执行此操作.精明的读者会注意到这个技巧允许MS解决window.onload问题,因为你输入的任何代码都pageLoad将独立于二进制内容(具有IE的一个罕见捕获).

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

从概念上讲,是的,实际上根本没有window.onload问题.唯一的规则是你应该只放置与你的AJAX控件交互的代码pageLoad,因为window.onload它遵循自己的事件轨迹.

>或者是在另一个之前打电话?

它们完全是100%独立的.

>或者会自动调用一个而另一个不会调用吗?

如果你定义了它们,它们都会被调用.



1> Crescent Fre..:

首先要注意的几件事情.MS发明了一种称为"客户端运行时对象" Sys.Application.它处理提升init,loadunload整个页面的[客户方]寿命事件,如下所示:

    Sys.Application.initialize()开始init生命周期的一部分.这initialize()是所有客户端AJAX控件,之后他们准备以编程方式进行交互

    Sys.Application开始load生命周期的一部分,调用已订阅此事件的所有处理程序

    最后,它调用全局函数pageLoad(如果定义了一个)

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

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

window.onload然而,关于它的关系,事情开始变得有趣.从本质上讲,MS需要window.onload火只init阶段已经完成.但你无法控制浏览器何时触发onload,因为它与"内容加载"相关联.这被称为" window.onload问题":

加载所有页面内容(包括图像和其他二进制内容)后,onload事件将触发.如果您的页面包含大量图像,那么在页面变为活动状态之前您可能会看到明显的延迟.

因此,他们刚刚发明了自己的"特殊"功能,可以在事件生命周期的恰当时间点亮并调用它"pageLoad".他们用来启动这个自定义事件生命周期的技巧是将调用Sys.Application.initialize()放在结束标记之前.serverside运行时执行此操作.精明的读者会注意到这个技巧允许MS解决window.onload问题,因为你输入的任何代码都pageLoad将独立于二进制内容(具有IE的一个罕见捕获).

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

从概念上讲,是的,实际上根本没有window.onload问题.唯一的规则是你应该只放置与你的AJAX控件交互的代码pageLoad,因为window.onload它遵循自己的事件轨迹.

>或者是在另一个之前打电话?

它们完全是100%独立的.

>或者会自动调用一个而另一个不会调用吗?

如果你定义了它们,它们都会被调用.

推荐阅读
echo7111436
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有