什么是jquery中的低级方法?

时间:2014-07-02 05:51:05

标签: jquery

jQuery文档说像jQuery.data()一样是低级方法,建议使用.data()来使用(不是说,而是考虑高级方法)。

所以,我的问题是:

  • 为什么说更方便的方式就像.data()
  • 低级别方法访问速度较慢吗?

4 个答案:

答案 0 :(得分:1)

'高水平'和低水平'方法根据它的抽象级别进行分类。

例如,

$('#test').hide();

这是一个高级抽象的例子,你只需要调用hide()来隐藏元素。

另一方面,

$('#test').css({'display':'none'});

这也是jQuery,但正在解释更多细节。因此它是低级别的.css()使我们能够为它提供更多选项。

在您的特定示例中,当它说.data()是一种更方便的方式时,它意味着它是低级别的,并且在如何使用它方面具有更大的灵活性。

答案 1 :(得分:1)

在编程语言中低级并不意味着坏或慢,其含义是基于它们的访问和抽象级别。低层通常在抽象层次结构中较低。例如C是一种低级语言,因为它可以为您提供直接的汇编级编码,但它不会为您提供接口。 C++是一种中级语言,因为它为您提供了像C这样的低级访问和带有Windows UI的高级抽象层。 Java是一种高级语言,它只为您提供顶级编码环境,JVM处理其他内存管理等。

同样,低级jQuery.data,它使您可以访问存储在data命名空间中的所有属性,还可以访问jQuery本身和其他插件保存的所有数据。但$(....).data仅为您提供高级访问权限,意味着它会抽象所有其他访问权限以及数据和命名空间,并且仅为您提供所需内容,仅data selector(在{{ 1}})。

所以,一般来说你要做到这一点 -

  1. 避免使用$(..)jQuery.data
  2. 使用$.datajQuery(....).data

答案 2 :(得分:1)

低级别方法访问速度较慢吗?

,请检查此JS Perf测试。

Test .data()

jQuery.data($el, 'key', 'plop');    //faster

$el.data('key', 'plop');            //Approx 30% slower.

为什么说更方便的方式就像.data()?

  • .data() :可以访问数据属性:

    <div id="content" data-key="hey"></div>
    $('#content').data('key', 'plop');
    
  • 虽然 jQuery.Data() 不能。


总结:

  • 如果您处理HTML5 data-*属性或事件,请使用$.fn.data

  • 在其他情况下,因绩效而使用$.data / jQuery.data()

注意:这只是一个考虑.data()

的示例

答案 3 :(得分:0)