如何在 .NET 应用程序中使用 RequireJS?
Posted
技术标签:
【中文标题】如何在 .NET 应用程序中使用 RequireJS?【英文标题】:How do you use RequireJS in a .NET application? 【发布时间】:2012-05-16 22:58:39 【问题描述】:我有以下文件夹结构:
->自定义
图表 ...JS 文件 增强 ...JS 文件 一般 ...JS 文件->库
jquery jquery.uijquery-1.7.2.js 需要js-1.0.7.js order.js
我有一个 .NET 应用程序,其中包含许多 ascx 控制文件,这些文件以传统方式引用 JS 文件,方法是在脚本标记中调用 JS 文件,然后从该文件中调用某些函数。
问题是我应该(或者我可以)如何实现 Require JS 以便我可以:
1) 在所有图片、css和html加载完成后调用JS文件,然后...
2) 使用 AMD 的代码模块化概念
需要指出的是,在每个 ascx 文件中最多有 5 个 ascx 文件,其中一些包含 ascx 控件。很多 ascx 文件里面都嵌入了 javascript,很多 .master 页面也有 JavaScript 文件引用。
我无法更改网站的结构(因为网站很大),所以我需要找到解决方案。
谢谢
【问题讨论】:
阅读您的问题我可以告诉您,如果您选择使用 requirejs,将会有很多工作要做。 Requirejs 是一个非常好的 Web 应用工具,但它对非良好结构的应用程序并不友好。 我现在正在将 requireJS 实现到一个 .NET 应用程序中并取得了巨大的成功,艰巨的工作是转换所有调用 javascript 的页面,并且如果它包含大量 JS 代码或创建用于 tat 调用的模块,或者, 将代码包装在 require 调用中。直截了当,但是转换网站的工作量很大。 查看这个项目RequireJS .NET 这是完美的,因为我们正在为我们正在构建的项目实施(开始实施)一个 MVC 框架。我已经转换了我们必须使用 requirejs 的所有代码,但这会更进一步,并且会很有用。 RequireJS 实施更新:随着 select.bestinvest 网站需要更多客户端 JS 繁重编码的出现,requireJS 在执行模块化编码方面非常棒,而不仅仅是一种自上而下的方法并将所有在一个文件中。尽管将所有 JS 转换为在 RequireJS 中运行需要做大量工作,但付出的努力是值得的。 【参考方案1】:这称为重构... v. 将以前未架构的解决方案重写为架构良好的解决方案有时会很痛苦。
【讨论】:
【参考方案2】:这更像是从 .NET Web 浏览器控件调用“InvokeScript()”的答案。但是谷歌把我带到了这里,有人可能会觉得这很有用。
首先,像往常一样定义新的 AMD 模块。将你称之为“InvokeScript()”的任何东西作为一个函数放在这个模块中:
define (...
var mySpecialHandler = function()
// do stuff
;
return
mySpecialHandler: mySpecialHandler
);
然后当你开始使用它时,使用在加载模块时最终设置的全局命名空间:
require(['app'], function (app)
window.mySpecialHandler = app.mySpecialHandler;
);
【讨论】:
以上是关于如何在 .NET 应用程序中使用 RequireJS?的主要内容,如果未能解决你的问题,请参考以下文章
.Net:如何在 Windows 窗体应用程序中使用 WPF 用户控件?