小编Mil*_*Man的帖子

使用适当的GC删除DOM节点(无泄漏)

问题

添加节点,同时从DOM中删除旧节点,不会丢弃内存中的旧节点.(至少不是所有人,没有明显的理由).

如何看待这种情况

(你已经知道了,但无论如何..)
右键单击输出区域并使用Chrome 开发人员工具进行检查.单击时间轴选项卡,然后单击左上角的圆圈(点)开始录制.

现在点击body元素,它将每隔300ms 开始添加和删除项目
(删除的节点应该被垃圾收集).

停止录制,将数据采样区域扩展到最大,您将在屏幕的下半部分看到绿色的节点.预期的图形将上下移动(其中下降意味着GC已正确丢弃节点).

测试页面

这2个测试页面非常原始.当然,在现实生活中,开发人员使用生成大量文本的模板,这些模板应转换为DOM并注入页面,因此内存中的实时DOM节点数应保持较低,并且必须丢弃已删除的节点.

与jQuery - http://jsbin.com/lamigucuqogi/2/edit - 大约40秒后,GC变得疯狂并停止收集被删除的节点,这会导致通货膨胀.

在此输入图像描述

朴素的方式 - http://jsbin.com/riref/2/edit - 似乎节点没有以令人满意的速度被移除,并且数量不断增长和增长...

在此输入图像描述

为什么会发生这种情况,如何正确地删除NODES以便不会发生通货膨胀?

javascript garbage-collection memory-leaks google-chrome-devtools

7
推荐指数
1
解决办法
3215
查看次数

什么时候图形数据库(像Neo4j)不是很好用?

网上有很多文章支持趋势转移到像Neo4j这样的图形数据库......但是我找不到太多反对它们的文章.

图表数据库何时不是最佳解决方案?

任何比较图形,nosql和关系数据库的文章的链接都会很棒.

sql database graph neo4j nosql

6
推荐指数
1
解决办法
1820
查看次数

phonegap插件无法正常工作 - 连接未定义

根据手机间隙文档我应该能够通过简单地添加<gap:plugin name="org.apache.cordova.network-information" />到添加网络cocnnection插件config.xml

我正在使用示例js函数来测试连接,它似乎不起作用.LogCat显示'无法读取属性'类型'未定义',这让我觉得插件从未添加过.

function checkConnection() {
var networkState = navigator.connection.type;

var states = {};
states[Connection.UNKNOWN]  = 'Unknown connection';
states[Connection.ETHERNET] = 'Ethernet connection';
states[Connection.WIFI]     = 'WiFi connection';
states[Connection.CELL_2G]  = 'Cell 2G connection';
states[Connection.CELL_3G]  = 'Cell 3G connection';
states[Connection.CELL_4G]  = 'Cell 4G connection';
states[Connection.CELL]     = 'Cell generic connection';
states[Connection.NONE]     = 'No network connection';

alert('Connection type: ' + states[networkState]);
Run Code Online (Sandbox Code Playgroud)

}

config.xml文件:

<?xml version="1.0" encoding="UTF-8" ?>
<widget xmlns   = "http://www.w3.org/ns/widgets"
    xmlns:gap   = "http://phonegap.com/ns/1.0"
    id …
Run Code Online (Sandbox Code Playgroud)

javascript phonegap-plugins cordova

6
推荐指数
1
解决办法
4621
查看次数

JS中的变量变量

我需要在JS中创建一个变量变量名...

obj = {};
obj.fooonex = {};
obj.fooonex.start = 1;
obj.fooonex.end = 2;

a = "foo";
b = "one";
c = "x";

test = a + b + c;

alert(obj.test.start);
Run Code Online (Sandbox Code Playgroud)

我希望结果为"1"

在这里小提琴:http://jsfiddle.net/mR6BH/

javascript variables

5
推荐指数
1
解决办法
100
查看次数

g 元素在 svg 之外渲染

我有一个使用 D3 创建的条形图。我省略了 JS 代码,因为问题与 html 和 css 有关,而不是与 D3 有关。

运行下面的代码片段。有 3 个部分(g 元素),每个部分都有一个标签和 3 个条(内部有一些文本)。第一个 g 元素似乎在 svg 之外渲染,切断了标签文本,我不明白为什么。

我已经尝试过的事情(不起作用):

  • svg 和 g 元素的相对位置。
  • 溢出:可见(与其说是解决方案,不如说是一种黑客攻击)
  • 将 svg 包装在clearfix div 中

我更喜欢一个解决方案,而不是像将 g 元素每个向下翻译 20 这样的 hack...

#chart{ width:100%;}

#chart rect {
  fill: steelblue;
}

#chart text.value {
  fill: white;
  font-size: 10px;
  text-anchor: end;
}

#chart text.value2 {
  fill: white;
  font-size: 12px;
}

#chart text.label {
  fill: black;
  font-size: 20px;
}
Run Code Online (Sandbox Code Playgroud)
<svg id="chart" width="908" height="375">
   <g transform="translate(0,0)">
     <text …
Run Code Online (Sandbox Code Playgroud)

html css svg

2
推荐指数
1
解决办法
3333
查看次数