asp.net – 如何知道一个javascript文件是否已被包含在顶级页面中?

我有一个用户控件(ascx),在这用户控件我想使用一个.js文件.

所以我包括在它的顶部.

另一方面,有时我在网页上使用此用户控件,此脚本之前已经加载了该脚本.

如果该页面不包含此脚本的另一个标签,我该如何进行声明并使之成为实际?

解决方法

当您使用asp.net时,执行检查服务器端是有意义的,因为您将选择添加javascript文件的引用.您可以从.ascx文件注册以下内容
this.Page.ClientScript.RegisterClientscriptinclude("GlobalUnqiueKey",UrlOfJavascriptFile);

…从您的页面直接调用ClientScript对象:

ClientScript.RegisterClientscriptinclude("GlobalUnqiueKey",UrlOfJavascriptFile);

‘GlobalUniqueKey’可以是任何字符串(我也使用javascript文件的url)

如果您尝试使用相同的键字符串注册脚本,则不会执行任何操作.所以如果你在你的页面,你的控件或其他任何地方这样称呼,那么你的页面中只会有一个引用.这样做的好处是,您可以在页面上拥有多个控件实例,尽管它们都尝试注册一个脚本,但最多只能做一次.而且没有人担心脚本已经被注册了.

一个’IsClientscriptincludeRegistered(stringkey)’方法可以用来查看脚本是否已经被包含在该键内,但是在注册之前进行这种检查似乎很多余,注册时不要抛出异常或导致其他任何异常错误.

检查客户端意味着,假设浏览器缓存多个JavaScript引用(可能不是),您仍然有多个标签,并且每个标签的头部导致一些JavaScript运行.如果您在一个页面上有20个控件实例,您可能会遇到严重问题.

相关文章

这篇文章主要讲解了“WPF如何实现带筛选功能的DataGrid”,文...
本篇内容介绍了“基于WPF如何实现3D画廊动画效果”的有关知识...
Some samples are below for ASP.Net web form controls:(fr...
问题描述: 对于未定义为 System.String 的列,唯一有效的值...
最近用到了CalendarExtender,结果不知道为什么发生了错位,...
ASP.NET 2.0 page lifecyle ASP.NET 2.0 event sequence cha...