首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >PHPStorm集成开发环境中的低效jQuery使用警告

PHPStorm集成开发环境中的低效jQuery使用警告
EN

Stack Overflow用户
提问于 2012-10-01 21:48:30
回答 3查看 23.1K关注 0票数 100

我最近升级了我的PHPStorm集成开发环境的版本,它现在警告我jQuery的使用效率低下。

例如:

代码语言:javascript
复制
var property_single_location = $("#property [data-role='content'] .container");

提示此警告:

检查jQuery选择器是否以有效的方式使用。它建议拆分以ID选择器为前缀的后代选择器,并警告可能被缓存的重复选择器。

所以我的问题是:

为什么这是低效的,执行上述选择器的有效方法是什么?

我猜是:

代码语言:javascript
复制
var property_single_location = $("#property").find("[data-role='content']").find(".container");

这条路对吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-05-18 10:14:01

今天我也遇到了同样的问题,多亏了Scott Kosman ,我才找到了解决方案。

基本上,答案是分别选择is,然后对下面的任何内容使用.find(...)。以你的例子为例:

代码语言:javascript
复制
$("#property [data-role='content'] .container");

将其更改为more than twice as fast会使PhpStorm感到高兴,并且可以明显地为

代码语言:javascript
复制
$("#property").find("[data-role='content'] .container");
票数 156
EN

Stack Overflow用户

发布于 2013-10-18 00:07:04

我认为在使用最新版本的jQuery和浏览器时,这两种方法之间的差异可以忽略不计。我构建了一个测试,它表明,在一个非常简单的情况下,使用组合选择器而不是对id进行选择,然后查找,实际上速度要快10%:

http://jsperf.com/jquery-find-vs-insel

对于在任何深度按类别选择多个子级,"find“确实看起来更快:

http://jsperf.com/jquery-find-vs-insel/7

在jQuery论坛上有一些关于这方面的讨论,但它已经有3年的历史了:https://forum.jquery.com/topic/which-jquery-selection-is-efficient正如他们在这里指出的,如果你在同一个id选择器上做很多操作,通过缓存顶级元素可以发现最大的性能改进。另一方面,如果您只做了几个选择,则实际上不会有任何性能差异。

因此,我认为IntelliJ夸大了这种代码风格的重要性。

票数 19
EN

Stack Overflow用户

发布于 2015-04-17 16:24:05

第一个问题是点击Alt+Enter,选择列表中的第一个提示,然后点击Enter,你会看到它认为最有效的方法是什么。

票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12674591

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档