2

在我的 WebApplication 中,我有许多 ASPX 页面,每个页面的开头都包含很多 javaScript。这会增加页面的加载时间(40 秒分钟)。我知道页面开头的 javascript @ 会阻止页面渲染,并且加载时间会增加。如何在不丢失实际功能的情况下将 Javascript 移动到页面底部以减少页面加载时间。

4

2 回答 2

2

ClientScriptManager.RegisterClientScriptBlock (我认为ClientScriptManager.RegisterClientScriptInclude)会将脚本块渲染到元素的顶部form,而ClientScriptManager.RegisterStartUpScript将它们渲染到元素的底部form

问题RegisterStartUpScript在于它不会按照添加的顺序输出脚本,这非常令人沮丧。你可以尝试几件事:

  1. 确保您的脚本名称按您希望它们呈现的顺序按字母顺序排列(愚蠢,我知道)。
  2. 尝试实现你自己的ClientScriptManager,它不会那么愚蠢。
  3. 完全避免ClientScriptManager将脚本发送到您希望脚本出现的确切位置的文字块中。
  4. 捆绑您的客户端脚本并仅包含该捆绑包。

#3 和 #4 的问题是控件可能会检查ClientScriptManager是否添加了依赖项,如果没有,它可能会添加它,导致脚本被包含两次。

于 2012-06-19T09:54:09.683 回答
0

JavaScript 文件应该被缓存。这是减少加载时间的第一步。将 JS 文件移动到底部会有所帮助,但如果这是您唯一的操作,则效果不大。您还必须检查为您的 JS 文件使用 defer 属性的可能性,这意味着脚本在页面完成解析时执行。

于 2012-06-19T09:40:28.563 回答