【问题标题】:asp.net ensure javascript is loaded once onlyasp.net 确保 javascript 只加载一次
【发布时间】:2011-01-02 07:02:25
【问题描述】:

我一直在使用 asp.net webforms,我一直在制作一个 UserControl,它依赖于外部文件中的一小部分 javascript。

我希望能够在 UserControl 中放置对 javascript 的引用,以确保它被加载到页面上,但问题是 UserControl 可以在页面上出现多次,所以我只希望脚本是加载了 UserControl 的第一个实例。

在 ASP.NET Webforms 中是否有一种简单的方法可以做到这一点?

【问题讨论】:

    标签: asp.net javascript webforms


    【解决方案1】:

    使用ClientScriptManagerRegisterClientScript() 方法来处理这个问题。在您的情况下,由于您包含来自外部文件的脚本,请使用 RegisterClientScriptInclude()

    或者,如果您使用的是 UpdatePanel,请使用 ScriptManager 等效的 Register...() 方法。

    【讨论】:

    • 正是我想要的。谢谢
    【解决方案2】:

    如果您控制其内容,您也可以在 JS 文件本身中处理此问题。

    var myObj = myObj || {};  // Variable to namespace your work
    
    // Make sure we do our work only once
    if (!(myObj.token)) {
    
        // do our work here...
    
        myObj.token = {};  // this ensure we won't enter the if block the next time
    
    }
    

    【讨论】:

    • 我不确定这将如何确保脚本文件只加载一次?它会检查脚本是否已加载,但你能解释一下它如何确保脚本不会被多次加载吗?
    • 是的,从技术上讲,该脚本在页面 DOM 中包含两次,并且将由浏览器处理两次。不同之处在于,在第二次通过时,什么都没有发生,因为 myObj.token 已经被定义了。
    猜你喜欢
    • 1970-01-01
    • 2019-10-02
    • 1970-01-01
    • 2016-09-09
    • 1970-01-01
    • 2011-04-12
    • 2011-09-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多