gpt4 book ai didi

asp.net - 管理/删除实时 Kentico 站点中不必要的脚本

转载 作者:行者123 更新时间:2023-12-01 06:11:40 27 4
gpt4 key购买 nike

我们正在使用 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 内构建网站将自动生成其他标记,例如 __doPostBackWebResource.axdScriptResource.axd.

我不建议删除母版页中的任何默认代码。这会导致事情崩溃(正如您所经历的)。

但是,使用此标记不会导致页面性能出现严重问题。可以理解,这并不理想。

我采取以下措施来减少打击:

  • 尽可能禁用 ViewState。例如,在页面模板或 Web 部件/用户控制级别。
  • 将 ViewState 移至页面底部(在 Kentico 设置中),以便页面不那么“头重脚轻”。
  • 确保您缓存了所有可以缓存的内容。例如,您的 Web 部件和模板(图像/js 等)在 IIS 级别和 Kentico 级别使用其 API 使用的站点家具。

阅读 Kentico 文档中的这篇文章可以提供一些更深入的信息:Optimizing website performance

如果您确实想要“完全控制”呈现的 HTML,Kentico 确实允许您使用 MVC 创建模板。但这不会让您通过在 CMS 管理中移动 Web 部件来灵活地修改页面模板。我认为您正是出于这个原因选择了门户页面方法。

我希望这会有所帮助。

关于asp.net - 管理/删除实时 Kentico 站点中不必要的脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32779107/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com