将信息存储在变量与数据属性元素

时间:2015-07-30 02:17:19

标签: javascript optimization

我们有选项1:

MyApp.frames.frame1 = {};
MyApp.frames.frame1.element = document.getElementById("#frame1");
MyApp.frames.frame1.alias = "f1";
MyApp.frames.frame1.otherInfo = "FOO";

选项2:

<div id="frame1" data-alias="f1" data-otherinfo="FOO"></div>

在更好的代码实践和性能方面哪个更好?

我发现选项2更快,因为代码更少。但我个人觉得维护选项1更容易,因为我可以找到我使用变量的地方,但又有更多的代码。

但除此之外,我并不真正了解使用option1或option2的任何真正的利弊。我想在我的代码中保持一致,所以任何见解都会非常有用。

1 个答案:

答案 0 :(得分:2)

第二个更快。但是使用对象进行配置更易于维护。 原因:

  1. 第二个更快:创建dom时设置此属性。它只有一个回合。第一个包括dom修改,浏览器检查是否应该呈现dom。

  2. 对我来说,我会使用以下内容:

    data-*

    更具可配置性和视觉效果。

  3. 这就是你要提到的: 使用dom.dataset["attr"]

  4. 检索 .controller('templeDetailsList', function ($scope, $http, $ionicModal) { $scope.starclick = function(){ var newFav = [{ "favid":"4654646", "favname":"sometext" }]; var favurl = "http://localhost:1337/users/adduser"; $.post(favurl, newFav, function () { alert("Successfully posted data"); }); } });