如果您的代码只操作已经完全解析的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问题非常相似,但我想查看是否有更多信息.
考虑以下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构造函数还是预期的行为?如果是后者,有没有办法区分"网络接口不活动"错误和构造函数方法的真正无效参数?
假设我有一个带有一些注释的接口,例如:
@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等).
node-mongo-native collection.find()函数的文档说它创建了一个光标对象,它懒惰地返回匹配的文档.此外:
游标的基本操作是
nextObject从数据库中提取下一个匹配文档的方法.方便的方法each和toArray调用,nextObject直到光标用尽.
不幸的是,文档没有提供如何判断光标实际耗尽的指示.您可以使用"toArray"方法并使用标准数组接口(例如"长度"方法),但此解决方案不适合流式传输大量数据.MongoDB API Wiki引用cursor.hasNext()了mongo shell,但是这个方法似乎在node.js驱动程序中不可用.
在node.js中从MongoDB流式传输数据时,如何确定光标何时耗尽?
在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)
知道我怎么能做这个工作吗?
我的代码中遗漏了什么吗?它似乎只抓取第一个字母,而 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(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)
这两种符号之间是否存在真正的差异?显然,关联数组表示法允许我们在对象上查找动态生成的键(并强制将其参数强制转换为字符串),而属性表示法使用文字,但这是唯一的区别吗?
我不太明白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读取),我还应该使用回调吗?如何在下一行执行之前或之后判断我的函数是否完成?
谢谢
在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).
我在哪里可以找到此功能的文档?
在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中,是否有更惯用的方法来做到这一点?
javascript ×3
node.js ×2
ruby ×2
annotations ×1
coffeescript ×1
cursor ×1
dom ×1
ecma262 ×1
events ×1
inet ×1
java ×1
jax-ws ×1
jquery ×1
mongodb ×1
perl ×1
properties ×1
sockets ×1
syntax ×1
web-services ×1