javascript – 没有使用jquery函数会对性能产生什么影响?

前端之家收集整理的这篇文章主要介绍了javascript – 没有使用jquery函数会对性能产生什么影响?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在一个非常相似的主题上发布了另外一个 question,但结果却有点主观.我可以将这个问题分成两个问题,我将在下面解释一个问题:

在以下代码中:

<script type="text/javascript">
$(function() 
{
   $("#accordion").accordion();
   $("#datepicker").datepicker();
   $("#button").click(function() 
   {
     runEffect();
     return false;
   });
});
</script>

问题:如果我在1000页中调用代码,但只有250页具有日期选择器ID.浏览器是否会在尝试解析id datepicker的其他750个页面上花费额外的时间,或者Jquery有一种解决这种情况的智能方法而不影响性能

如果代码引用当前页面的html标记上不存在的id或类会发生什么,这会影响性能吗?

解决方法

对于那些说“不要担心”的人,我不能不同意.

我在外部JS文件具有以下内容时构建了一个这样的站点

$(function() {
  // do lots and lots of stuff
});

HTML(PHP)页面内部没有Javascript.这是一场性能灾难,选择选择相对有效,意味着永远:

$(".someClass").doStuff();

代替:

$("div.someClass").doStuff();

等等.执行所有Javascript花了大约一秒钟,尽管其中95%没有做任何事情.我的建议?如果您想要一个响应迅速的网站,请不要这样做.

而是将这样的函数放在外部JS中:

function activate_accordion() {
  $("#accordion").accordion();
}

这当然是一个简单的例子.但重点在于:除非绝大多数页面都使用Javascript,否则不应在外部Javascript文件自动执行Javascript.您的外部Javascript文件应该只是在各个页面上必要时调用功能集合.

然后在HTML放入的每个页面上:

<script type="text/javascript">
$(function() {
  activate_accordion();
}
</script>

所以你只执行你实际使用的Javascript.是的,这稍微多一些工作,因为你必须知道每个页面正在做什么/使用什么,但是全局做这件事很快就会失控.

我通过这种方式将Javascript执行时间减少到50-100ms(从1-2秒).

猜你在找的jQuery相关文章