加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-16 00:30:39 所属栏目:asp.Net 来源:网络整理
导读:我正在使用ASP.NET AJAX,并希望了解这两个代码段之间的区别: function pageLoad(sender,eventArgs) { } 和 window.onload = function() { } 他们的行为是一样的吗? 还是一个叫另一个? 还是会自动调用另一个? 解决方法 一些事情要先注意MS发明了一种名为
我正在使用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%独立。

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读