Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 在页面开始呈现之前,有没有巧妙的方法来注入JQuery?_Asp.net Mvc_Webforms_Web Config - Fatal编程技术网

Asp.net mvc 在页面开始呈现之前,有没有巧妙的方法来注入JQuery?

Asp.net mvc 在页面开始呈现之前,有没有巧妙的方法来注入JQuery?,asp.net-mvc,webforms,web-config,Asp.net Mvc,Webforms,Web Config,我希望用最少的代码将jQuery插入到每个页面中。。。 换句话说,我不想在每个aspx页面上都写 到目前为止,我考虑过使用基类并在“页面加载”事件中插入“Response.Write”。 除此之外,我还有什么其他选择。。。web.config?还有别的吗 Webforms/MVC解决方案的额外积分。谢谢你的建议 编辑: 找到了我最喜欢的答案 作者和我一样,不喜欢ClientScript.RegisterClientScriptBlock的标准实现,因为各种原因(比如MSFT坚持使用表单runat

我希望用最少的代码将jQuery插入到每个页面中。。。 换句话说,我不想在每个aspx页面上都写

到目前为止,我考虑过使用基类并在“页面加载”事件中插入“Response.Write”。 除此之外,我还有什么其他选择。。。web.config?还有别的吗

Webforms/MVC解决方案的额外积分。谢谢你的建议

编辑: 找到了我最喜欢的答案
作者和我一样,不喜欢ClientScript.RegisterClientScriptBlock的标准实现,因为各种原因(比如MSFT坚持使用表单runat=server标记),并构建了一个更好的捕鼠器。

如果您已经包括

<html><head><title>Title</title></head><body>...</body></html>
标题。。。
在每一页中,我相信你都能挤出一个

<script ...></script>


但我仍然同意肯的观点:看看母版页。

如果你已经包括

<html><head><title>Title</title></head><body>...</body></html>
标题。。。
在每一页中,我相信你都能挤出一个

<script ...></script>


但我仍然同意Ken的观点:看看母版页。

不知道您是架构,这可能很难笼统地回答


但是,我可以建议,如果您最终不得不修改所有页面,将它们设置为使用include,如果您必须更新jquery版本或添加$(document).ready()函数或添加任何jquery插件,您可以修改include,而不必重新修改所有页面。

不知道您的架构,这可能很难笼统地回答

但是,如果您最终不得不修改所有页面,请将它们设置为使用include,如果您必须更新jquery版本或添加$(document).ready()函数或添加任何jquery插件,您可以修改include,而不必重新修改所有页面。

方法是在页面底部加载javascript,以防止脚本减缓初始页面加载

由于您还特别提到了jquery,我建议在母版页末尾使用以下代码:

<script src="http://www.google.com/jsapi"></script>
<script>
  // Load jQuery
    google.load("jquery", "1");
</script>

//加载jQuery
load(“jquery”,“1”);
这样做的好处是,您的用户可能已经在浏览器中缓存了jquery的这个副本,并且您将始终使用最新版本来引导:)

如果您使用的是母版页,则不需要将脚本“插入到每个页面中”。

关键是在页面底部加载javascript,以防止脚本减缓初始页面加载

由于您还特别提到了jquery,我建议在母版页末尾使用以下代码:

<script src="http://www.google.com/jsapi"></script>
<script>
  // Load jQuery
    google.load("jquery", "1");
</script>

//加载jQuery
load(“jquery”,“1”);
这样做的好处是,您的用户可能已经在浏览器中缓存了jquery的这个副本,并且您将始终使用最新版本来引导:)


如果您使用的是母版页,则不需要将脚本“插入每个页面”。

您可以在全局asax中挂钩到页面生命周期的任何事件:

void Application_PreRequestHandlerExecute(object sender, EventArgs e)
{
    Page page = this.Context.CurrentHandler as Page;
    if( page != null )
        page.Load += new EventHandler(page_Load);
}

void page_Load(object sender, EventArgs e)
{
    Page page = (Page)this.Context.CurrentHandler;
    page.ClientScript.RegisterClientScriptInclude("jquery", jqueryurl);
}

另外,我认为您也可以使用http模块来实现这一点。

您可以在全局asax中连接到页面生命周期的任何事件:

void Application_PreRequestHandlerExecute(object sender, EventArgs e)
{
    Page page = this.Context.CurrentHandler as Page;
    if( page != null )
        page.Load += new EventHandler(page_Load);
}

void page_Load(object sender, EventArgs e)
{
    Page page = (Page)this.Context.CurrentHandler;
    page.ClientScript.RegisterClientScriptInclude("jquery", jqueryurl);
}

另外,我认为您也可以使用http模块来实现这一点。

使用母版页并将其放在顶部。有人说把它放在底部,但在第一次加载之后,它会被缓存,如果你想操纵DOM,我个人宁愿在我的用户真正开始看到呈现的页面之前进行操作。将其放在底部肯定会导致这种情况发生,可能会让用户感到困惑,并导致糟糕的用户体验。

使用母版页并将其放在顶部。有人说把它放在底部,但在第一次加载之后,它会被缓存,如果你想操纵DOM,我个人宁愿在我的用户真正开始看到呈现的页面之前进行操作。将其放在底部肯定会导致这种情况发生,可能会让用户感到困惑,并导致糟糕的用户体验。

似乎微不足道。我的心为你流着血。这很琐碎,除非你正在寻找一个“圆滑”和“聪明”的解决方案,它不会触及我所有的页面。我很抱歉,我以为你只是太懒了。:)似乎微不足道。我的心为你流着血。这很琐碎,除非你正在寻找一个“圆滑”和“聪明”的解决方案,它不会触及我所有的页面。我很抱歉,我以为你只是太懒了。:)我认为“#includes”作为一个经典的ASP专用解决方案不受欢迎,不适合ASP.NET。对吗?我认为“#includes”作为一个经典的纯ASP解决方案不受欢迎,不适合ASP.NET。对吗?上次加载javascript的建议来自Yahoo的web性能团队,在O'reilly出版的《高性能网站》一书中也有推荐。唯一需要注意的是使用脚本调用document.write最后加载javascript的建议来自Yahoo的web性能团队,O'reilly出版的《高性能网站》一书中也推荐了这一建议。唯一的警告是使用调用document.write的脚本