在我的 WebApplication 中,我有许多 ASPX 页面,每个页面的开头都包含很多 javaScript。这会增加页面的加载时间(40 秒分钟)。我知道页面开头的 javascript @ 会阻止页面渲染,并且加载时间会增加。如何在不丢失实际功能的情况下将 Javascript 移动到页面底部以减少页面加载时间。
问问题
593 次
2 回答
2
ClientScriptManager.RegisterClientScriptBlock
(我认为ClientScriptManager.RegisterClientScriptInclude
)会将脚本块渲染到元素的顶部form
,而ClientScriptManager.RegisterStartUpScript
将它们渲染到元素的底部form
。
问题RegisterStartUpScript
在于它不会按照添加的顺序输出脚本,这非常令人沮丧。你可以尝试几件事:
- 确保您的脚本名称按您希望它们呈现的顺序按字母顺序排列(愚蠢,我知道)。
- 尝试实现你自己的
ClientScriptManager
,它不会那么愚蠢。 - 完全避免
ClientScriptManager
将脚本发送到您希望脚本出现的确切位置的文字块中。 - 捆绑您的客户端脚本并仅包含该捆绑包。
#3 和 #4 的问题是控件可能会检查ClientScriptManager
是否添加了依赖项,如果没有,它可能会添加它,导致脚本被包含两次。
于 2012-06-19T09:54:09.683 回答
0
JavaScript 文件应该被缓存。这是减少加载时间的第一步。将 JS 文件移动到底部会有所帮助,但如果这是您唯一的操作,则效果不大。您还必须检查为您的 JS 文件使用 defer 属性的可能性,这意味着脚本在页面完成解析时执行。
于 2012-06-19T09:40:28.563 回答