0

我开发了一个非常复杂的新控件。我还知道它在第一次打开时不会出现在页面上,但只有当用户单击按钮以显示它时(因此,它首先出现在回发中)。我们还使用 Microsoft 的 ASP.NET AJAX 框架来使我们所有的回发部分更新。

由于控件相当复杂,它依赖于一堆 javascript 文件,有自己的 CSS 文件和一些图像。在任何时候都包括这些是不合理的,因为它只会以几种形式出现,即使那样也并非总是如此。此外,虽然目前不需要托管多个控件实例,但我希望保持此选项处于打开状态,否则 3 年后有人会尝试这样做,如果它不起作用,则会感到惊讶。

那么我该如何做到这一点,CSS/JS 文件在页面上只包含一次(即使可能有几个这样的控件),并且仅在第一个请求时控件出现在那里(以便后续请求不会' t 尝试不必要地重新下载这些资源)?

Page.ClientScript.RegisterClientScriptInclude()不适用于 AJAX 回发;ScriptManager.RegisterClientScriptInclude()将使浏览器在每个请求上重新下载脚本,即使它可能已经被下载。而且它们都不能用于 CSS 包括。还有什么?

4

1 回答 1

0

如果您正在创建一个 Web 用户控件,并且您担心不止一次包含 jquery 文件,那么我能想到的最简单的方法是类似于

<script type="text/javascript">window.jQuery || document.write(unescape('%3Cscript src="/js/jquery-1.9.1.min.js" type="text/javascript"%3E%3C/script%3E'))</script>
于 2013-04-27T05:00:14.447 回答