在asp.net中引用jquery的最佳方法是什么?

时间:2009-03-18 17:20:37

标签: asp.net jquery

我观看了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完成加载的简写。

5 个答案:

答案 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文件!有时可以很方便。