【发布时间】:2016-06-03 11:40:26
【问题描述】:
我们正在使用 Ajax Control 工具包。 我们安装了这个:
https://www.nuget.org/packages/AjaxControlToolkit.StaticResources/
我们已经使用 ACT 进行捆绑,通过在 web config 中进行设置:
<asp:ScriptManager ID="sm" runat="server" EnableCdn="true" >
<Scripts>
<asp:ScriptReference Path="~/Scripts/AjaxControlToolkit/Bundle" />
</Scripts>
</asp:ScriptManager>
我们正在优化页面,我们注意到,该脚本将近 1MB。
这个:
AJAX Control Toolkit Loading All Scripts
还有这个:
http://stephenwalther.com/archive/2013/07/25/july-2013-release-of-the-ajax-control-toolkit
会解决我们的问题。
但是在新版本的 Ajax Control Toolkit ajaxToolkit:ToolkitScriptManager 已经过时,所以我们不能在脚本管理器中使用 ControlBundles。
我的问题是:如何只加载我们需要的脚本(我们正在使用下拉菜单、评分和滑块)?
我们正在使用:
Ajax 控制工具包 16.1.0
.net 框架 4.5.1
编辑:到目前为止我做了什么: 将 AjaxControlToolkit.config 添加到 root 并插入此
<?xml version="1.0"?>
<ajaxControlToolkit>
<controlBundles>
<controlBundle name="AjaxBundle">
<control name="CalendarExtender" />
<control name="ComboBox" />
</controlBundle>
</controlBundles>
</ajaxControlToolkit>
将脚本管理器添加到母版页:
<asp:ScriptManager ID="sm" runat="server" EnableCdn="true" >
<Scripts>
<asp:ScriptReference Path="~/Scripts/AjaxControlToolkit/AjaxBundleBundle" />
</Scripts>
</asp:ScriptManager>
将此添加到 Global asax 到应用程序启动:
BundleTable.Bundles.Add(new ScriptBundle("~/Script/js-master".Include("~/Scripts/AjaxControlToolkit/AjaxBundle"));
在母版页上我也有:
<%: System.Web.Optimization.Scripts.Render("~/Script/js-master") %>
我故意错过了滑块扩展器(所以它不应该工作),但它仍然可以工作,所以我猜所有的 Ajax Control Toolkit 脚本都已加载。
网页配置,还有:
<compilation debug="false" targetFramework="4.5.1">
【问题讨论】:
-
您不需要将
ScriptBundle明确添加到BundleTable中。你能检查一下浏览器的开发者控制台中实际加载了哪些脚本吗?也可能是您加载 CDN 捆绑包。
标签: asp.net webforms ajaxcontroltoolkit