asp控件中的javascript代码管理

标签 javascript asp.net projects-and-solutions

我们正在寻找一种方法来管理我们的 asp 控件(与 RegisterClientScript 系列一起使用)的不断增加的 javascript 代码。经典的方法是在 c# 代码中将 javascript 编码为字符串常量,但现在它变得越来越大,你不想在 c# 字符串中开发。将代码放在外部文件中并在编译之前将其转换/复制为字符串形式也有些荒谬。此外,在这些情况下,几乎相同的代码会随控件的每个实例发送多次。

其他重要标准是让脚本自给自足,仅外部依赖于 jquery&co,因此不需要在其他地方拥有特定于控件的 javascript 文件。所有相关部分都必须放在一个地方。

到目前为止,我个人最好的选择是将 Javascript 分成两部分:
- “代码隐藏”-like js 文件作为嵌入式资源编译到程序集中。这比字符串连接慢大约 3 倍但是。此外,它还提供了缓存选项和直接从文件获取选项,无需重新编译进行调试。此部分在包含控件的每个页面内联交付一次。
- 使用控制实例特定参数调用主脚本的微小初始化代理函数。这些也是内联交付的,但每个控件实例一次。

我敢肯定,我们不是唯一为此挠头的人。
那么你是怎么做到的呢?

更新。 摆脱 .net 细节,情况如下。 我们有大约 100 多个可重用的服务器端组件,每个组件都可能包含一些 JavaScript 客户端功能。这些控件当然不会在每个页面中使用,因此不需要将 javascript 打包到一个公共(public)库中。另一方面,有 20 多个对外部 javascript 文件的引用,每个文件的大小都是 1-2Kb,这对于维护和流量过度杀伤来说都是令人头疼的。 这就是为什么我们想让组件知道并关心它自己的 javascript 包含。

另一方面,如果你有一个项目,其中这些组件分布在几个库中,你真的不希望它们依赖于某些特定的文件系统布局,这些布局当然可能是标准化的,但它对在我看来,一个汽车轮胎可以让你在晚餐时选择可乐。

最佳答案

如果您有多个控件重复使用的 JavaScript 代码 - 为什么不希望将其放在外部 *.js 文件中?这将允许您保持格式,同时仍然提供最小化、gzip 压缩和客户端可缓存的文件。

关于asp控件中的javascript代码管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4067996/

相关文章:

javascript - AngularJS ng-click 内 ng-repeat 的性能

c# - Quartz.Net 2.0.1 触发器

visual-studio - 当目标在 VS 解决方案中失败时,如何使 msbuild 失败?

javascript - 后台请求的 webRequest 在 Chrome 中有效,但在 FF 中无效

javascript - 将 Base64 图像发布到 Mvc Controller

asp.net - asp.net *WebForms* 开发人员对 future 有何期望?

javascript - Asp.net jQuery 验证引擎提交问题

grails - IntelliJ IDEA 9.0 - 无法为 Grails 应用程序选择项目 SDK

visual-studio - 更改 Visual Studio 的 Clean Solution 选项

javascript - JQuery 事件 .on ('click' 未触发