Sneezry / Dualx

Chrome OS QQ Client
200 stars 51 forks source link

WebQQ 官方对于性能问题的思考 #68

Open whuhacker opened 11 years ago

whuhacker commented 11 years ago

如果有1000个QQ好友, 意味着如果从头拉到尾, 会创建1000个div, 这时候有些浏览器也许已经假死了.

所以我们想到了一种解决办法, 当滚动条滚动的时候, 把已经消失在视线外的div都删除掉. 这样页面可以保持只有一定数量的节点. 问题是这样频繁的添加与删除节点, 也会造成很大的性能开销, 而且这种感觉很不对味.

现在享元模式可以登场了. 顾名思义, 享元模式可以提供一些共享的对象以便重复利用. 其实我们一共只需要10个div来显示好友信息,也就是出现在用户视线中的10个div.这10个div就可以写成享元.

实现起来感觉也不简单。原文链接 http://www.alloyteam.com/2012/10/commonly-javascript-design-patterns-flyweight/