我目前正在使用site.master页面为布局开发一个普通的Web应用程序。
我注意到,在实现SignalR时,我们必须导入以下脚本
<script src="Scripts/jquery-1.10.2.min.js"></script>
<script src="Scripts/jquery.signalR-2.1.0.min.js"></script>
<script src="signalr/hubs"></script>
但是,考虑到连接会多次启动,将脚本放在site.master中是一种很好的做法。
有没有更好的方法在一个更普遍的地方导入脚本,它只会启动一次集线器?或者,如果我将它留在我的site.master页面中,它是否无关紧要?
此外,如果我有不同的页面不使用site.master会发生什么情况,在这种情况下,我是否需要在不同的页面中重新导入脚本?
有两种方式可以想到。
实现嵌套母版页。 See Here您可以在内部母版页中添加脚本,并仅将此母版页用于需要这些附加脚本的页面。如果有很多页面需要此脚本(但不是全部),这是一种“正常”的方法。
您还可以在主模板中创建内容占位符。像这样。
<asp:ContentPlaceHolder ID="cphScripts" runat="server">
</asp:ContentPlaceHolder>
然后,在要添加额外脚本的页面中,您可以添加这样的脚本。
<asp:Content ID="ContentScripts" ContentPlaceHolderID="cphScripts" runat="server">
<script src="Scripts/jquery-1.10.2.min.js"></script>
<script src="Scripts/jquery.signalR-2.1.0.min.js"></script>
<script src="signalr/hubs"></script>
</asp:Content>
如果您有几页需要这些脚本,我会采用这种方法。正如您所看到的,您必须在每个页面中一次又一次地重复该块。