我们正在使用ASPX + portal模型构建Kentico 8.2网站。在我的实时站点上查看呈现的HTML,我可以看到Kentico转储到我的页面中的许多不必要的Javascript。更重要的是,这发生在表单元素顶部的页面顶部。
例如,即使我没有使用任何需要它的控件,它也会呈现ASP.NET __doPostBack
JS函数。其他脚本将作为WebResource.axd和ScriptResource.axd包括在内添加。
乍一看,这些脚本似乎构成了与UpdatePanel
等一起使用的Microsoft AJAX框架。我的假设是,在Kentico UI中使用页面时,可以在其中添加门户网站管理器功能。大概它们也与某些内置Web部件一起使用。
但是,我仅在活动站点上使用自定义Web部件,因此所有这些脚本都无济于事,只会减慢我的页面速度并导致较差的性能测试结果。
在渲染实时站点时,我尝试在主页上隐藏<ajaxToolkit:ToolkitScriptManager />
和<cms:CMSPortalManager />
控件,但这会导致具有<cms:CMSWebPartZone />
的模板损坏。
有谁知道如何确保在不需要时消除肿胀?还是至少使这些脚本在页面末尾呈现,以免对性能造成太大干扰?
最佳答案
不幸的是,使用ASPX和ASPX + Portal Pages在Kentico中构建站点会自动生成其他标记,例如__doPostBack
,WebResource.axd
和ScriptResource.axd
。
我不建议您在母版页中删除任何默认代码。这将导致事情中断(如您所经历的)。
但是,适当地放置此标记不会导致页面性能出现严重问题。可以理解,这不是理想的。
我为减轻打击而采取的措施如下:
从Kentico文档中阅读此文章可以更深入地了解一些信息:Optimizing website performance
如果您真的想完全控制呈现的HTML,Kentico确实允许您使用MVC创建模板。但是,这不能让您灵活地通过在CMS管理中移动Web部件来修改页面模板。我想您正是出于这个原因选择了门户页面方法。
我希望这有帮助。
关于asp.net - 在现场Kentico网站中管理/删除不必要的脚本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32779107/