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