对于将 javascript 代码包含在文件中而不是将其包含在脚本标记中,开发人员的一般意见是什么。
所以我们都同意 jquery 需要包含在脚本文件中,如下所示:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"
type="text/javascript"></script>
我的问题是,为了在不在网站所有页面上的页面上获得功能。我们是在同一个页面中包含像下面这样的函数,还是在像上面这样名为 mysite.js 的全局包含文件中。
$(document).ready(function(){
$(".clickme").click(function(event){
alert("Thanks for visiting!");
});
});
好的。所以问题是:如果要在特定页面上的每个 class="clickme"中调用上面的代码,并且您可以从名为 mysite.js 的包含单独文件或在页。你会走哪条路?
参数是:
如果您将它包含在页面上,您将只会从那些需要 js 功能的特定页面调用它。
编辑 1: 好的。我想确保人们解决的一点是,让 document.ready 函数调用页面中不存在的东西会产生什么影响,这会在浏览器上触发任何类型的延迟吗?这是一个重大影响吗?
最佳答案
首先 - $("#clickme")
会找到 id="clickme"而不是 class="clickme"。如果你正在寻找类(class),你会想要 $(".clickme")
。
我(尝试)从不在我的 XHTML 文档中放置任何实际的 JavaScript 代码,除非我正在快速测试页面上的某些内容。我总是链接到一个外部 JS 文件来加载我想要的功能。没有 JS 的浏览器(如网络爬虫)将不会加载这些文件,并且它使您的代码在“查看源代码”中看起来更加清晰。
如果我只需要一个页面上的一些功能 - 它有时会获得自己的包含文件。这完全取决于它使用了多少功能/慢速选择器。仅仅因为您将 JS 放在外部 JS 文件中并不意味着您需要在每个页面上都包含它。
我采用这种做法的主要原因 - 如果我需要更改一些 JavaScript 代码,它们将全部位于同一个位置,并在整个站点范围内进行更改。
就性能问题而言——有些选择器会花费很多时间,但大多数选择器(尤其是那些处理 ID 的选择器)都非常快。搜索一个不存在的选择器是浪费时间,但是当你把它与第二个脚本 HTTP 请求的浪费时间(这会阻止 DOM 准备好 btw)相比时,搜索一个空的选择器通常会获胜作为两害相权取其轻。 jQuery 1.3 Performace Notes和 SlickSpeed希望能帮助您确定您因搜索类(class)而真正损失了多少 MS。
关于javascript - 在哪里放置 JavaScript 配置函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1527730/