我开发了一个非常复杂的新控件。我还知道它在第一次打开时不会出现在页面上,但只有当用户单击按钮以显示它时(因此,它首先出现在回发中)。我们还使用 Microsoft 的 ASP.NET AJAX 框架来使我们所有的回发部分更新。
由于控件相当复杂,它依赖于一堆 javascript 文件,有自己的 CSS 文件和一些图像。在任何时候都包括这些是不合理的,因为它只会以几种形式出现,即使那样也并非总是如此。此外,虽然目前不需要托管多个控件实例,但我希望保持此选项处于打开状态,否则 3 年后有人会尝试这样做,如果它不起作用,则会感到惊讶。
那么我该如何做到这一点,CSS/JS 文件在页面上只包含一次(即使可能有几个这样的控件),并且仅在第一个请求时控件出现在那里(以便后续请求不会' t 尝试不必要地重新下载这些资源)?
Page.ClientScript.RegisterClientScriptInclude()
不适用于 AJAX 回发;ScriptManager.RegisterClientScriptInclude()
将使浏览器在每个请求上重新下载脚本,即使它可能已经被下载。而且它们都不能用于 CSS 包括。还有什么?