我有几个小的javascript函数:
// Show cookie notice
$('#site-cookie-notice').slideDown();
// Hide cookie notice
$('.close-cookie-notice').click(function (e) {
if (e.preventDefault) {
e.preventDefault();
}
else {
e.returnValue = false;
}
$('#site-cookie-notice').slideUp();
});
这些功能仅与单个用户控件相关,在用户访问中最多出现一次(对于回头客而言根本不显示)。其余的时间没有呈现控件。
上面的代码目前驻留在我的global.js中,在document.ready函数中,所以加载每一页,但是看起来这是错误的资源的不必要使用。
我有兴趣知道是否有更好的方法在这样的特定基础上注册此代码。
答案 0 :(得分:1)
您可以使用ScriptManager类在用户控件的加载中注册脚本。这也可用于确保脚本不会多次加载。
您可以使用RegisterClientScriptBlock
或RegisterClientScriptInclude
,具体取决于您是要在线提供脚本还是将其放在单独的文件中。
答案 1 :(得分:0)
使用用户控件中的ScriptManagerProxy引用此脚本。这将包含在您的页面上,而不必在所有页面上都有。
这需要在母版页或内容页面上使用ScriptManager或ToolkitScriptManager(如果使用AjaxControlToolkit)。每个渲染页面只能有一个脚本管理器。
http://msdn.microsoft.com/en-us/library/system.web.ui.scriptmanagerproxy.aspx