gpt4 book ai didi

javascript - 如何在 (MVC) 中将 js/jquery 保持在底部

转载 作者:行者123 更新时间:2023-11-28 03:52:59 24 4
gpt4 key购买 nike

我知道最好将 javascript/jquery 放在页面底部。

但我究竟该如何实现这种“最佳实践”?

在我当前的 web 项目 (MVC4) 中,我将 javascript 放在了底部。但是除非我将我的 javascript 放在 header 中(这被认为是不好的做法?),否则我无法进行任何工作。

<body>
<div id="container">
<div id="header">
</div>

<div id="content">
<!--js function that calls upon jQuery (slider) -->
</div>
</div>

<!--Javascript declaration-->
</body>

例如:

 <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript" src="js/slider.js"></script>

函数 slider.js 需要 jQuery 才能使我的 slider 工作。

有没有办法将我所有的 javascript 文件(包括 jQuery)保留在底部并在函数需要访问它时加载 jQuery(或其他函数/库)?

更新

问题似乎出在 MVC bundles 上。当我将 javascript 文件放在底部的正常语法中时,一切正常。

是否需要单独的 bundle ?不确定 MVC 以何种顺序加载包。

在应用这种bundle时(先是jquery然后是js函数)执行顺序是错误的。

因此我无法真正看到捆绑的优势,有人愿意解释一下吗?

 bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-1.7.1.js",
"~/Scripts/js/slider.js"));

谢谢。

最佳答案

之所以这样好,是因为浏览器会与网页同步加载脚本。所以如果你把它们放在顶部,加载大的脚本会拖延内容加载。如果将它放在 body 标签结束之前的底部,内容将首先加载,从而使页面弹出速度更快,而不会出现脚本停顿。

要解决您的问题,请将所有执行代码包装在 document.ready 或等效的 jquery 中:

$(function(){
//your code here
})

如果 jQuery 还没有加载,你可以用 console.log 检查:

if(!window.jQuery)
{
console.log("problem");
}

您在这里没有提供太多信息,这使得调试变得困难。我所能做的就是给你做的步骤。您只需确保在页面上运行任何其他脚本之前加载 jQuery。

您的页面中是否有内嵌脚本标签?

关于javascript - 如何在 (MVC) 中将 js/jquery 保持在底部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14572091/

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