在自定义服务器控件中嵌入javascript资源
Embed javascript resource in custom server control
我正在创建我的第一个ASP。. NET服务器控件,基于我在网上找到的jquery增强的文本框。部分原始代码包含一个jQuery扩展文件,因此我需要将其包含在控件中。(基本的jQuery库是web应用程序的要求,所以为了我们的目的,我们可以安全地假设它已经在使用该控件的任何页面上可用。)
我首先将javascript文件添加为资源,并能够在控件的Render事件中编写流。虽然它创建了所需的HTML/javascript,但jQuery的工作并不完全正确。
我的第二个问题是,我预计在任何给定的页面上使用的控件的几个实例,所以即使上面的方法工作,javascript将不断重复。恶心。
我怎么能包括这个javascript与我的控制,但确保只有一个迭代它被渲染?谷歌已经找到了一些参考使用作为[assembly]
属性和Page.RegisterClientScriptResource
,但我不太清楚。
Page.ClientScript.RegisterClientScriptResource(getType(page), _
page.ResolveUrl("~/scripts/jquery.js")
RegisterClientScriptResource的全部意义在于防止页面重新加载重复的脚本。
注意,上面的示例假设您在内部网上工作。如果您使用的是公共网站,最好使用CDN托管文件(http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js)
一个想法是将其嵌入到页面中,然后作为:
const string JAVASCRIPT_RESOURCE = "[namespace].[class].customJS.js"
Stream st = Assembly.GetExecutingAssembly().GetManifestResourceStream(JAVASCRIPT_RESOURCE);
StreamReader sr = new StreamReader( st );
this.Page.ClientScript.RegisterClientScriptBlock(this.GetType(),
"customJS", sr.ReadToEnd(), true);
另一种是增加cache-control
指令。这将导致浏览器从本地缓存加载它,以供后续请求使用。WebResources
在发布模式下构建时发出cache
指令debug=false
.
相关文章:
- ADF:有条件地加载javascript资源
- 浏览器如何加载 Javascript 资源
- 静态表的 JavaScript 资源
- Node.js和Apache/PHP之间共享的javascript资源
- 在Webworker中使用AJAX加载javascript资源
- VB调用javascript资源代码
- 加载javascript资源后尝试执行操作
- 用于控制台的Javascript资源,如web应用程序
- 是否有一种方法来确定是否加载了所有本地JavaScript资源
- 有条件加载javascript资源
- 将MojoMotor站点移动到新服务器后,所有javascript资源都无法加载
- 如何只在laravel中调用一个javascript资源
- 为什么JSF以文件扩展名. JSF和GET参数ln=js交付JavaScript资源?
- 在javascript资源中使用Rails助手方法
- JSF2.0 URL问题-来自JavaScript资源中的图像
- 带有css和javascript资源的本地Tomcat实例
- 在自定义服务器控件中嵌入javascript资源
- 没有jQuery的javascript资源
- ruby on rails - Javascript资源在Heroku上编译错误
- 有什么理由不将 2 个外部 JavaScript 资源合并为一个