我认为jsfiddle非常整洁,我昨天用它来帮助堆栈溢出的人.
我创建了一个新的小提琴,点击'保存'并使用这个提供的链接:http://jsfiddle.net/77XLD/1/
这个链接工作到几个小时前,但突然之间,当我再次尝试找到我的旧小提琴时,我得到了一个404页面.他说:
Error 404
We're truly sorry, but there is no such page.
Run Code Online (Sandbox Code Playgroud)
现在我到目前为止还没有注册过jsfiddle.只有在那里注册时,jsfiddle是否会将页面存储无限时间?那么我的页面是否只是"超时"?
编辑(2014年8月11日):该页面又回来了.
正如我已经了解的那样(这里:https://www.youtube.com/watch?v = 8aGhZQkoFbQ),在某些情况下,调用setTimeout时延迟0ms(因为事件循环)会很有用.
现在,每当我使用时,setTimeout我也会小心地clearTimeout在适当的位置打电话,以确保没有任何东西留在某处,并在我不希望它被执行的地方执行.
所以我的问题是:clearTimeout在setTimeout0ms 之后打电话是否有必要(有意义吗?)传递的函数会立即附加到回调队列中,因此我认为clearTimeout不会(也不能)执行任何操作.或者clearTimeout甚至可以从回调队列中删除传递的函数(因此在超时到期之后但在函数执行之前)?
第二个问题:即使它没有做任何事情,clearTimeout在这些情况下总是要求"最佳做法" 吗?
我是d3的新手,正在使用Scott Murray的"互动数据可视化网络"(这很棒),让我开始.现在我所看到的所有内容都按照描述的方式工作,但在查看创建新元素的过程时,让我感到困惑.简单的例子(来自Scott Murray):
svg.selectAll("circle")
.data(dataset)
.enter()
.append("circle");
Run Code Online (Sandbox Code Playgroud)
该名称"circle"用于selectAll返回空选择(这是我学到的).然后将相同的名称加入到圆圈中.append.大!
现在让我感到困惑的是,当你想再次做同样的事情时会发生什么.所以你有第二个数据集,并希望以相同的方式生成新的圆圈.使用相同的代码只是替换数据集显然不会起作用,因为selectAll("circle")不再返回空选择.所以我玩了selectAll一遍,发现我可以使用任何名称,甚至将它留空如下:selectAll()
Scott Murrays示例始终只使用每个数据集的一种类型(圆形,文本等).最后我在官方的例子中找到了类似的东西
svg.selectAll("line.left")
.data(dataset)
.enter()
.append("line")
.attr ...
svg.selectAll("line.right")
.data(dataset)
.enter()
.append("line");
.attr ...
Run Code Online (Sandbox Code Playgroud)
现在我的问题是:这个条目是如何selectAll("ENTRY")真正使用的?以后可以用它来再次以任何方式引用这些元素,或者它真的只是一个虚拟名称,可以以任何方式选择并只需要返回一个空选择?我无法在生成的DOM或对象结构中的任何位置找到此条目.
谢谢你让我困惑.