ASP.NET母版页和可选Jquery脚本

ASP.NET母版页和可选Jquery脚本,jquery,asp.net,Jquery,Asp.net,我使用的是母版页,JQuery在一些页面中引用,但不是所有页面。我正在添加一些使用客户端JQuery的用户控件,因此需要在使用这些控件的页面中包含对JQuery库的引用 显然有很多方法可以实现这一点,但我想知道以下技术的相对优缺点(或者是否确实存在更好的技术): 如果页面和一些用户控件都使用jquery,则可以向客户端添加一个脚本元素(通过创建具有相关属性的HTMLgenericControl)到标题controlCollection-cons->指向同一文件的多个脚本元素。这真的是一个劣势吗?

我使用的是母版页,JQuery在一些页面中引用,但不是所有页面。我正在添加一些使用客户端JQuery的用户控件,因此需要在使用这些控件的页面中包含对JQuery库的引用

显然有很多方法可以实现这一点,但我想知道以下技术的相对优缺点(或者是否确实存在更好的技术):

  • 如果页面和一些用户控件都使用jquery,则可以向客户端添加一个脚本元素(通过创建具有相关属性的HTMLgenericControl)到标题controlCollection-cons->指向同一文件的多个脚本元素。这真的是一个劣势吗?浏览器是否会尝试下载多个副本

  • 添加母版页布尔属性jQueryLib&仅当尚未添加脚本元素时,才按上述方式添加脚本元素。缺点-在母版页的情况下,我无法像使用用户控件那样在ASP中设置属性。因此,所有页面都需要更多的代码,而不是简单的

  • 如果jQuery=='undefined',则使用一些相当简单的客户端javascript加载jQuery并在加载库后运行相关脚本。缺点-如果在一个页面上使用多个用户控件,那么指向javascript实用程序函数的脚本标记仍会多次出现在标题中。然而,作为一个优势,这个文件比jQuery库小得多

  • 只需将脚本引用放在母版页中,即使只有以管理员身份登录的用户才需要jquery功能


  • 一如既往-非常感谢您的想法,并为我对html和asp的业余知识表示歉意。

    您只能使用以下内容将jQuery添加到管理员主页:

    服务器端

    protected bool administrator { get { return true; } }
    
    function pageLoad(sender, args) {
        var administrator = "<%= administrator %>".toLowerCase() == "true" ? true : false;
    
        if(administrator == true)
            loadJQuery();
    }
    
    function loadJQuery(){
        var scriptTag = document.createElement("script");
        var filePath = "jquery.js";
    
        scriptTag.onload = function( loadEvent ){
            // This function runs when jquery is loaded
        }
    
        scriptTag.type = "text/javascript";
        scriptTag.src = filePath;
        document.getElementsByTagName("head")[0].appendChild(scriptTag);
    }
    
    Javascript

    protected bool administrator { get { return true; } }
    
    function pageLoad(sender, args) {
        var administrator = "<%= administrator %>".toLowerCase() == "true" ? true : false;
    
        if(administrator == true)
            loadJQuery();
    }
    
    function loadJQuery(){
        var scriptTag = document.createElement("script");
        var filePath = "jquery.js";
    
        scriptTag.onload = function( loadEvent ){
            // This function runs when jquery is loaded
        }
    
        scriptTag.type = "text/javascript";
        scriptTag.src = filePath;
        document.getElementsByTagName("head")[0].appendChild(scriptTag);
    }
    
    函数页面加载(发送方,参数){
    var administrator=“.toLowerCase()=”真“?真:假;
    如果(管理员==true)
    loadJQuery();
    }
    函数loadJQuery(){
    var scriptTag=document.createElement(“脚本”);
    var filePath=“jquery.js”;
    scriptTag.onload=函数(loadEvent){
    //此函数在加载jquery时运行
    }
    scriptTag.type=“text/javascript”;
    scriptTag.src=文件路径;
    document.getElementsByTagName(“头”)[0].appendChild(scriptTag);
    }
    
    您只能使用以下方法将jQuery添加到管理员的母版页:

    服务器端

    protected bool administrator { get { return true; } }
    
    function pageLoad(sender, args) {
        var administrator = "<%= administrator %>".toLowerCase() == "true" ? true : false;
    
        if(administrator == true)
            loadJQuery();
    }
    
    function loadJQuery(){
        var scriptTag = document.createElement("script");
        var filePath = "jquery.js";
    
        scriptTag.onload = function( loadEvent ){
            // This function runs when jquery is loaded
        }
    
        scriptTag.type = "text/javascript";
        scriptTag.src = filePath;
        document.getElementsByTagName("head")[0].appendChild(scriptTag);
    }
    
    Javascript

    protected bool administrator { get { return true; } }
    
    function pageLoad(sender, args) {
        var administrator = "<%= administrator %>".toLowerCase() == "true" ? true : false;
    
        if(administrator == true)
            loadJQuery();
    }
    
    function loadJQuery(){
        var scriptTag = document.createElement("script");
        var filePath = "jquery.js";
    
        scriptTag.onload = function( loadEvent ){
            // This function runs when jquery is loaded
        }
    
        scriptTag.type = "text/javascript";
        scriptTag.src = filePath;
        document.getElementsByTagName("head")[0].appendChild(scriptTag);
    }
    
    函数页面加载(发送方,参数){
    var administrator=“.toLowerCase()=”真“?真:假;
    如果(管理员==true)
    loadJQuery();
    }
    函数loadJQuery(){
    var scriptTag=document.createElement(“脚本”);
    var filePath=“jquery.js”;
    scriptTag.onload=函数(loadEvent){
    //此函数在加载jquery时运行
    }
    scriptTag.type=“text/javascript”;
    scriptTag.src=文件路径;
    document.getElementsByTagName(“头”)[0].appendChild(scriptTag);
    }
    
    如果用户是管理员,您是否考虑过只动态添加jquery?如果用户是管理员,您是否考虑过只动态添加jquery?