我观看了Stephen Walther的pdc会话,并在演示文稿中引用了JQuery js文件,如下所示:
<asp:ScriptManager id="sm1" runat="server">
<Scripts>
<asp:ScriptReference Path="~/Scripts/JQuery.js" />
</Scripts>
</asp:ScriptManager>
以上述方式进行操作是否有利有弊,而不仅仅是使用页面头部的链接。
他还将以下内容放入其示例页面的javascript部分以运行JQuery:
<script type="text/javascript">
function pageLoad()
{
$(":text").css("background-color","yellow");
}
</script>
PageLoad是否必须在上面?他提到它来自Microsoft AJAX库,它等待DOM完成加载,但我认为JQuery中的$符号只是等待DOM完成加载的简写。
答案 0 :(得分:8)
$(document).ready()和pageLoad()不一样!
http://encosia.com/2009/03/25/document-ready-and-pageload-are-not-the-same/
来自文章:
在DOM加载完成后调用pageLoad()。这不是调用pageLoad()的唯一点:它也是在每次部分回发之后调用的。
对于运行一次的初始化代码,$(document).ready()是理想的解决方案。
答案 1 :(得分:4)
使用ScriptManager,ASP.NET可以创建单个复合脚本以减少浏览器请求的数量,并且如果浏览器支持它,则压缩脚本。
<asp:ScriptManager ID="ScriptManager1" runat="server">
<CompositeScript>
<Scripts>
<asp:ScriptReference Path="~/Scripts/Script1.js" />
<asp:ScriptReference Path="~/Scripts/Script2.js" />
<asp:ScriptReference Path="~/Scripts/Script3.js" />
</Scripts>
</CompositeScript>
</asp:ScriptManager>
答案 2 :(得分:4)
如果您正在研究如何引用jQuery文件,这就是我正在做的事情:
<script type="text/javascript" src="Scripts/jquery.js"></script>
由于您的页面上有ScriptManager,您还可以使用PageLoad。
function pageLoad() {
//MSAJAX Stuff... If Needed
}
$(document).ready(function() {
$.datepicker.setDefaults($.datepicker.regional[$("#<%= hfCultureAbbreviation.ClientID %>").val()]);
});
答案 3 :(得分:3)
以这种方式通过ScriptManager添加脚本的好处是可以通过使用CompositeScript轻松连接和缩小文件。不幸的是,这意味着它们将通过ScriptResource.axd在页面上被引用,我一直觉得这是一个非常难看的解决方案。
我更感兴趣的是将juicer之类的内容集成到我的构建过程中,但为方便起见,你无法击败ScriptManager。
答案 4 :(得分:2)
不要忘记注册Intellisense文件!有时可以很方便。