首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >JavaScript中有没有类似于ViewHolder的功能?

JavaScript中有没有类似于ViewHolder的功能?
EN

Stack Overflow用户
提问于 2013-04-29 17:48:37
回答 1查看 143关注 0票数 1

我正在做一个PhoneGap安卓项目作为一次学习体验。

我想根据特定列的长度动态地实现一个SwipeView,我的疑虑是:

1)您能计算出特定列的长度吗?因为我们通过下面的代码实现它:

代码语言:javascript
复制
var a = results.rows.length;

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

代码语言:javascript
复制
var a = results.COLUMN_NAME.length;

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

我正在考虑像我们在Android中那样使用_ViewHolder_m,比如

代码语言:javascript
复制
mSwipeView.addView(holder.getView(j));

public class ViewHolder { ... }

这是正确的吗?JavaScript中有没有类似于ViewHolder的功能?

EN

回答 1

Stack Overflow用户

发布于 2017-06-25 17:42:13

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

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

代码语言:javascript
复制
var viewHolder = [];
viewHolder[0] = document.querySelector('item_0');
...
viewHolder[n] = document.querySelector('item_n');

然后,如果您需要引用这些元素,例如设置文本属性或其他任何内容,您将使用holder而不是不断查询DOM:

代码语言:javascript
复制
viewHolder[n].text = "Some text";

当然,我们的视图控制器应该更多地面向对象,而不是在我的示例中,这只是为了演示目的。

附注:不要忘记将viewHolder“置为空”,否则你可能会有内存泄漏,因为仍然有变量链接到DOM对象。

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

https://stackoverflow.com/questions/16275620

复制
相关文章

相似问题

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