小编mae*_*ics的帖子

是否真的有必要等待DOM准备好操纵DOM?

如果您的代码只操作已经完全解析的DOM元素,是否真的有必要等待"ready"(或"window.onload")事件?

"ready()"函数的jQuery文档演示了如何在DOM完全就绪之前等待执行操作,但示例是在相关DOM元素之前列出的代码(脚本标记).但似乎在HTML文档中必要的DOM元素之后出现的代码可以访问它们,因为可能是DOM是在浏览器解析文档时构建的.

例如,可以安全地假设以下代码在所有情况下都是可靠的,或者仍然需要(或以某种方式有益)使用ready/onload处理程序?

<body>
  <div id="foo"/>
  <script type="text/javascript">
    var foo = document.getElementById('foo');
    foo.innerHTML = 'The element #foo is loaded!';
  </script>
</body>
Run Code Online (Sandbox Code Playgroud)

这个SO问题非常相似,但我想查看是否有更多信息.

javascript jquery events dom

4
推荐指数
1
解决办法
1418
查看次数

Perl IO :: Socket :: INET混淆"无效参数"错误

考虑以下Perl脚本片段:

use IO::Socket;
# ...
my $sock = IO::Socket::INET->new(
    PeerAddr => $host, # e.g. "google.com"
    PeerPort => $port, # e.g. 80
    Proto => 'tcp'
);
die("no socket: $!") unless $sock;
# ...
Run Code Online (Sandbox Code Playgroud)

在正常情况下,一切都按预期工作,但是当主机系统的互联网连接处于非活动状态时,"sock"变量为空并且$!显示消息"无效参数".

我不恰当地使用INET构造函数还是预期的行为?如果是后者,有没有办法区分"网络接口不活动"错误和构造函数方法的真正无效参数?

sockets perl invalid-argument inet

4
推荐指数
1
解决办法
3316
查看次数

实现接口的Java类是否可以自动继承注释?

假设我有一个带有一些注释的接口,例如:

@SpecialClass
public interface IFoo { /* ... */ }
Run Code Online (Sandbox Code Playgroud)

假设我创建了一个实现接口的类:

public class Foo implements IFoo { /* ... */ }
Run Code Online (Sandbox Code Playgroud)

类是否可能Foo以某种方式"继承"或自动复制来自IFoo其成员的所有或部分注释(例如,自动注释Foo@SpecialClass等)?

这将便于实现Web服务类(如那些由JAX-WS"的wsimport"工具生成)由刚刚执行其标注的接口,而无需显式不必界面注释复制到实现类(如javax.jws.WebService,javax.xml.ws.RequestWrapper等).

java annotations web-services jax-ws

4
推荐指数
1
解决办法
1231
查看次数

Node Mongo Native - 如何判断游标何时耗尽?

node-mongo-native collection.find()函数的文档说它创建了一个光标对象,它懒惰地返回匹配的文档.此外:

游标的基本操作是nextObject从数据库中提取下一个匹配文档的方法.方便的方法eachtoArray调用,nextObject直到光标用尽.

不幸的是,文档没有提供如何判断光标实际耗尽的指示.您可以使用"toArray"方法并使用标准数组接口(例如"长度"方法),但此解决方案不适合流式传输大量数据.MongoDB API Wiki引用cursor.hasNext()了mongo shell,但是这个方法似乎在node.js驱动程序中不可用.

在node.js中从MongoDB流式传输数据时,如何确定光标何时耗尽?

cursor mongodb node.js node-mongodb-native

4
推荐指数
1
解决办法
3416
查看次数

为什么我不能在类上下文中引用DATA?

在Ruby中,__END__通过DATAIO对象在任意使用之后存储静态文本非常方便:

puts DATA.read # Prints "This is the stuff!"
__END__
This is the stuff!
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试从新类的上下文中引用DATA对象时,我得到了意外错误(显然在Ruby 1.9.3和2.0中):

class Foo
  STUFF = DATA.read # <class:Foo>: uninitialized constant Foo::DATA (NameError)
end

class Foo
  STUFF = ::DATA.read # <class:Foo>: uninitialized constant DATA (NameError)
end
Run Code Online (Sandbox Code Playgroud)

知道我怎么能做这个工作吗?

ruby

4
推荐指数
1
解决办法
1210
查看次数

javascript 中的首字母缩略词生成器。它只抓取第一个单词的第一个字母,而不抓取其他单词

我的代码中遗漏了什么吗?它似乎只抓取第一个字母,而 while 循环不会进入下一个单词。那么我可能会错过什么?

function acr(s){
    var words, acronym, nextWord;

    words = s.split();
    acronym= "";
    index = 0
    while (index<words.length) {
            nextWord = words[index];
            acronym = acronym + nextWord.charAt(0);
            index = index + 1 ;
    }
    return acronym
}
Run Code Online (Sandbox Code Playgroud)

javascript

3
推荐指数
2
解决办法
5639
查看次数

JavaScript Object属性查找 - 语法是否重要?

这是一个关于JavaScript(ECMAScript)语言的基本问题,所以如果它是重复的话我会提前道歉(一点点搜索没有透露我的确切问题).

在ECMAScript中,我们可以使用两种基本的句法形式来获取/设置对象的属性,它们似乎具有完全相同的效果.由于我不知道更好,我会称它们为"属性"和"关联数组"符号:

var o = {};
// Property notation.
o.foo = 'Foo'; // (set)
o.foo; // => "Foo" (get)
// Associative array notation.
o['bar'] = 'Bar'; // (set)
o['bar']; // => "Bar" (get)
// They seem to be interchangeable.
o['foo']; // => "Foo"
o.bar; // => "Bar"
Run Code Online (Sandbox Code Playgroud)

这两种符号之间是否存在真正的差异?显然,关联数组表示法允许我们在对象上查找动态生成的键(并强制将其参数强制转换为字符串),而属性表示法使用文字,但这是唯一的区别吗?

javascript syntax properties ecma262

3
推荐指数
1
解决办法
582
查看次数

什么时候使用回调?

我不太明白node.js中回调的使用.我明白,如果你有类似的东西

result = db.execute(query);
doSomething(result);
Run Code Online (Sandbox Code Playgroud)

你应该把doSomething作为回调因为doSomething会在结果准备好之前执行.这是有道理的,因为db操作可能很昂贵.

现在让我说我有类似的东西

result = calculate(x,y)
doSomething(result)
Run Code Online (Sandbox Code Playgroud)

如果计算不贵(即没有从数据库或I/O读取),我还应该使用回调吗?如何在下一行执行之前或之后判断我的函数是否完成?

谢谢

node.js

3
推荐指数
1
解决办法
146
查看次数

在Ruby中,`Float(...)`记录在哪里?

在Ruby语言中,您可以Float像强大的方式一样调用函数来确保参数是Float或可解析为float的字符串(包括科学记数法等).

例如:

Float(1.0)     # => 1.0
Float('1.0')   # => 1.0
Float('-1.23') # => -1.23
Float('-1e+2') # => -100.0
Run Code Online (Sandbox Code Playgroud)

但是,Ruby文档似乎没有在任何地方描述这种行为(Float v2.1.0,Float v1.9.3).

我在哪里可以找到此功能的文档?

ruby

3
推荐指数
1
解决办法
106
查看次数

Array.reduce的CoffeeScript习惯用法,具有默认值

在CoffeeScript中,有时我需要Array.reduce(...)使用默认值进行调用;但是,不幸的是,参数的排序意味着初始值/默认值位于reduce函数本身之后,这意味着我必须使用大量的paren,这似乎比CoffeeScript想要的丑陋得多。

例如:

items = [ (id:'id1', name:'Foo'), (id:'id2', name:'Bar') ] # ...
itemsById = items.reduce(((memo, item) -> # <-- Too many parens!
  memo[item.id] = item
  memo), {}) # Ugly!
Run Code Online (Sandbox Code Playgroud)

在CS中,是否有更惯用的方法来做到这一点?

coffeescript

3
推荐指数
2
解决办法
814
查看次数