在JavaScript中是否有类似于ViewHolder的功能?

时间:2013-04-29 09:48:37

标签: javascript android cordova

我正在做一个PhoneGap Android项目作为学习经历。

我想根据特定列的长度动态实现 SwipeView ,我的怀疑是:

1)你能看一个特定列的长度吗?我们通过以下代码实现它:

var a = results.rows.length;

我无法添加类似以下内容的内容

var a = results.COLUMN_NAME.length;

2)我想根据数据库中记录的长度动态实现 SwipeView

我正在考虑使用 ViewHolder 我们在Android中的表现,例如

mSwipeView.addView(holder.getView(j));

public class ViewHolder { ... }

这是对的吗?在JavaScript中是否有类似 ViewHolder 的功能?

1 个答案:

答案 0 :(得分:-1)

我认为Javascript中的ViewHolder应该保留对DOM元素的引用,这样您就不必查询它。

例如,如果你有可遍历的列表,并且每个项目类似于具有item_0 ... item_n(或任何其他属性)的div元素(或其他任何东西),我们的视图持有者应该保持对这些元素的引用,例如:

    first number : 10
second number: 20
.....MENU.......
 1.Add
 2.Subtract
 3.Multiply
 4.Divide

Enter your choice : 1
30.0
Do you want to continue?(Y/y) : y
first number : 20.7
second number: 13.2
.....MENU.......
 1.Add
 2.Subtract
 3.Multiply
 4.Divide

Enter your choice : 2
7.5
Do you want to continue?(Y/y) : y
first number : 3.6
second number: 7.9
.....MENU.......
 1.Add
 2.Subtract
 3.Multiply
 4.Divide

Enter your choice : 3
28.44
Do you want to continue?(Y/y) : y
first number : 45
second number: 7
.....MENU.......
 1.Add
 2.Subtract
 3.Multiply
 4.Divide

Enter your choice : 4
6.428571428571429
Do you want to continue?(Y/y) : n

Process finished with exit code 0

然后,如果您需要引用这些元素,例如设置文本属性或其他任何内容,您可以使用持有者,而不是经常查询DOM:

var viewHolder = [];
viewHolder[0] = document.querySelector('item_0');
...
viewHolder[n] = document.querySelector('item_n');

当然,我的视图持有者应该更加面向对象,然后在我的示例中仅用于演示目的。

P.S。不要忘记"取消" viewHolder否则你可能会有内存泄漏,因为仍有变量链接到DOM对象。

相关问题