asp.Net   发布时间:2022-04-07  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了asp.net-ajax – Sys.Application.add_load()vs. $(document).ready()vs. pageLoad()大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有页面有一些javascript需要在页面加载运行。说javascript需要定位ServerControl的客户端组件,它使用$ find()。

当然,如果我将我的代码直接发送到页面上,它会在页面被读取时执行,并且失败,因为它依赖的没有被初始化。

如果我把我的代码放在一个pageLoad()函数,它运行很好,因为asp.net自动连接一个onload处理程序的任何函数名为pageLoad()。问题是我真的不喜欢pageLoad()解决方案 – 主要是因为它是一个单一的全局名称。如果我使用pageLoad()提交一些代码,我只知道一些其他程序员要复制的方法,在某个地方不合适,我们将最终得到一个页面,包括两个或更多不同的pageLoad()函数,结果将是一堆神秘的错误,将永远追踪下来。

所以,我把我的代码放在一个匿名函数传递给jquery的$(document).ready()。这会失败,因为它在ServerControl的客户端组件存在之前运行。

所以,我把我的代码在一个匿名函数传递给Sys.Application.add_load()。这也失败,因为Sys是未定义的。

所以我最后决定把我的代码放在Sys.Application.add_load()中,然后把它放在一个由$(document).ready()调用的函数中。这工作,但它给出几乎与pageLoad()一样多的胃灼热。

<script type="text/javascript">
    $(document).ready(function(){
        Sys.Application.add_load(function(){
            var component = $find(<clientid>);
            if (component) { <do something> }
        });
    });
</script>

必须有一个更好的方法来处理这个。

有任何想法吗?

解决方法

如果您可以控制代码隐藏,您可以注册JavaScript以在启动时运行,例如:
this.Page.ClientScript.RegisterStartupScript(
    this.GetType(),"StartupScript","Sys.Application.add_load(function() { functioncall(); });",truE);

只要你的组件通过Sys.Application.add_init()加载你应该很好…

大佬总结

以上是大佬教程为你收集整理的asp.net-ajax – Sys.Application.add_load()vs. $(document).ready()vs. pageLoad()全部内容,希望文章能够帮你解决asp.net-ajax – Sys.Application.add_load()vs. $(document).ready()vs. pageLoad()所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。