繁体   English   中英

asp.net CDN和scriptmanager

[英]asp.net cdn and scriptmanager

我想了解CDN的使用。

1的jQuery:我已经读了很多帖子,以防使用本地文件后退

通用解决方案:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/ZZjquery.min.js"></script>

<script type='text/javascript'>
    if (typeof jQuery == 'undefined') {
        document.write(unescape("%3Cscript src='/Scripts/jquery-1.11.1.min.js' type='text/javascript' %3E%3C/script%3E"));
    }
</script>

对于jQuery Mobile

   <script src="//ajax.googleapis.com/ajax/libs/jquerymobile/1.4.3/ZZjquery.mobile.min.js"></script>
<link rel="stylesheet" href="//ajax.googleapis.com/ajax/libs/jquerymobile/1.4.3/jquery.mobile.min.css" />

<script type='text/javascript'>

    if (typeof $.mobile == 'undefined') {
        document.write(unescape("%3Cscript src='/Scripts/jquery.mobile-1.4.4.min.js'  %3E%3C/script%3E"));
        document.write(unescape("%3Clink rel='/stylesheet' href='/Content/JQ/jquery.mobile-1.4.4.css'  %3E%3C/script%3E"));
    }

</script>

我也读了一个更好的解决方案:

 void Application_Start(object sender, EventArgs e) {

// map a simple name to a path

ScriptManager.ScriptResourceMapping.AddDefinition("jQuery", new ScriptResourceDefinition {

    Path = "~/scripts/jquery-1.3.2.min.js",

    DebugPath = "~/scripts/jquery-1.3.2.js",

    CdnPath = "http://ajax.microsoft.com/ajax/jQuery/jquery-1.3.2.min.js",

    CdnDebugPath = "http://ajax.microsoft.com/ajax/jQuery/jquery-1.3.2.js"

});

}

但是在这种情况下,如何从本地加载CSS文件?

2另一个问题是MicrosoftAjax和其他内容如何?

我像那样使用scriptmanger:

<asp:ScriptManager runat="server" EnableCdn="true"  />

而且我没有在BundleCollection中包含所有WebForms和MicrosoftAjax脚本

但是,如果Microsoft Ajax CDN Fall会发生什么?

谢谢您的帮助

好的,我已经解决了我的问题

1个

在App_start中

 Dim srd As New ScriptResourceDefinition()
            srd.Path = "~/Scripts/jquery-1.11.1.min.js"
            srd.DebugPath = "~/Scripts/jquery-1.11.1.min.js"
            srd.CdnPath = "//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"
            srd.LoadSuccessExpression = "window.jQuery"

            ScriptManager.ScriptResourceMapping.AddDefinition("JQ", srd)

...

然后在我的主页上

<asp:ScriptManager runat="server" EnableCdn="true"  >
        <Scripts>


            <asp:ScriptReference Name="JQ" />
            <asp:ScriptReference Path="~/Scripts/InitMobile.js" />
            <asp:ScriptReference Name="JQM" />
             <asp:ScriptReference Name="JQT" />
            <asp:ScriptReference Name="MyJQ" />
        </Scripts>

    </asp:ScriptManager>

       <asp:ContentPlaceHolder runat="server" ID="ScriptContent" />

我的ScriptContent在我的页面中用于初始化一些jquery东西

对于css文件,我通过此代码测试是否存在他的类之一

<link rel="stylesheet" href="//ajax.googleapis.com/ajax/libs/jquerymobile/1.4.3/jquery.mobile.min.css" />
    <script type='text/javascript'>

        try{
            var hasstyle = false;
            var fullstylesheets = document.styleSheets;
            for (var sx = 0; sx < fullstylesheets.length; sx++) {
                var sheetclasses = fullstylesheets[sx].rules || document.styleSheets[sx].cssRules;
                for (var cx = 0; cx < sheetclasses.length; cx++) {
                    if (sheetclasses[cx].selectorText == ".ui-btn") {
                        hasstyle = true; break;
                        //return classes[x].style;              
                    }
                }
            }

        }
        catch (err) { }

            if (!hasstyle) {
                document.write('<link href="<%= Page.ResolveClientUrl("~/Content/JQ/jquery.mobile-1.4.4.css") %>" rel="stylesheet" />');
            }

    </script>

2

脚本管理器独自工作。

例如。 这个输出

<script src="http://ajax.aspnetcdn.com/ajax/4.5/6/MicrosoftAjaxWebForms.js" type="text/javascript"></script>
<script type="text/javascript">
//<![CDATA[
(window.Sys && Sys.WebForms)||document.write('<script type="text/javascript" src="../Scripts/WebForms/MsAjax/MicrosoftAjaxWebForms.js"><\/script>');//]]>
</script>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM