MapEasy拖动时内存优化一则
来源:互联网 发布:淘宝专业版模板 编辑:程序博客网 时间:2024/05/22 12:35
MapEasy设计上小巧精悍,但是内存性能方面没有充分考虑。尤其当拖动地图时,内存无极增加。
尽管MapPaneWidget.js代码中,存在如下移除旧瓦片功能,但是似乎根本不起作用。
for (var i = 0;i < oldTileNodes.length;i++) {
if (oldTileNodes[i] != null) {
mapDiv.removeChild(oldTileNodes[i]);
}
}
仅针对拖动地图方面的测试,如果要使上段代码起到效果,需mapDIV添加瓦片时,不给瓦片添加事件处理,如下修改:
if (isExist == false) {
offsetX = tiles[i].getColumn() * MapModel.tileSize;
offsetY = tiles[i].getRow() * MapModel.tileSize;
//var tile = document.createElement("div");//QIU mark
var tile = document.createElement("img");
tile.src = tiles[i].getSrc();
tile.id = tileId;
tile.style.position = "absolute";
tile.style.left = offsetX + "px";
tile.style.top = offsetY + "px";
/*tile.onmousedown = function() {
return false;
};*/
mapDiv.appendChild(tile);
//var tileImage = document.createElement("img");
//tileImage.src = tiles[i].getSrc();
/*tileImage.onmousedown = function() {
return false;
}*/
//tile.appendChild(tileImage);
}
貌似因为事件处理对象的循环引用,而照成的内存无法释放。
参考如下JS中内存泄露模式介绍。
http://www.ibm.com/developerworks/cn/web/wa-memleak/index.html?S_TACT=105AGX52&S_CMP=techcsdn
如果需要考虑Firefox等浏览器的操作,为瓦片添加onmousedown处理函数时,最好如下:
{...
tile.style.left = offsetX + "px";
tile.style.top = offsetY + "px";
tile.onmousedown = nullOperation;
....}
function nullOperation() {
return false;
};
- MapEasy拖动时内存优化一则
- SQL优化一则
- 数据库hang优化一则
- SQL优化案例一则
- MySQL filesort优化案例一则
- 一则sql优化的例子
- 区间检索SQL优化一则
- Spark优化一则 - 减少Shuffle
- Spark优化一则 - 减少Shuffle
- 快排优化方式一则
- Spark优化一则 - 减少Shuffle
- 多条件组合查询SQL优化一则
- 一则PHP性能优化的技巧
- duilib list效率优化小技巧一则
- Python模式—— 一则优化轶事
- 一则对or条件的优化处理
- hadoop配置 - Datanode GC优化一则
- Nginx + Apache 的优化例子一则
- Windows7下IIS7的安装及ASP配置方法★
- mplayer不能播放avi
- 使用自定义站点地图提供程序控制ASP.NET的菜单
- Hibernate tapestry spring
- 页面间传值方法-1
- MapEasy拖动时内存优化一则
- CSDN排名8888,自娱一下
- Silverlight: 消除HyperlinkButton点击后出现的边框
- 如何防止RAR压缩文件密码被暴力破解!
- Jquery操作Select,radio等
- Linux下ARM汇编语法
- Linux下telnet设置
- 新的开始
- 著名云存储网站DropBox疑似被墙(附应对方法)