代码之家  ›  专栏  ›  技术社区  ›  Mircea

jquery.data()与html5 data xxx性能

  •  3
  • Mircea  · 技术社区  · 16 年前

    我发现了这个测试 http://jsbin.com/ekofa/2 这表明HTML5数据xxx比jquery更快 .data() . 我正在启动一个项目,需要在性能至关重要的HTML元素上放置大量的小数据块。我应该用吗? 数据() 还是HTML5数据XXX?测试是否相关且准确?

    1 回复  |  直到 10 年前
        1
  •  6
  •   Nick Craver    16 年前

    我想这要看你是从哪里来的,但为了储存 简单的 性质, data-XXX 会更快,因为 $.data() 和 .data() 工作。

    例如,当您这样做以获取数据时:

    var thing = $('#myelement').data('thing')
    

    你真正要做的是:

    var thing = $.cache[$('#myelement')[0][$.expando]]['thing'];
    

    这比直接获取属性要长,如下所示:

    $('#myelement').attr('thing')
    

    所以有了数据,你就可以 $.expando 属性 只是 获取身份证 然后 去 $.cache 为了得到这个对象,这个额外的步骤意味着它会一直变慢。

    再一次, data-xxx 属性不用于存储事件处理程序或其他您正在积极操作的真正复杂的对象…因此它们在应用程序中不是1:1,因此直接比较可能不公平。虽然它们在许多情况下用于相同的事物,但它们也有 不同的 两种应用程序都不通用的应用程序……所以在选择要使用的内容时请记住这一点。这通常适用于任何2种情况。 主要地 通用技术IMO。