要查看操作中的问题,请参阅此jsbin.单击按钮会触发buttonHandler(),如下所示:
function buttonHandler() {
var elm = document.getElementById("progress");
elm.innerHTML = "thinking";
longPrimeCalc();
}
Run Code Online (Sandbox Code Playgroud)
您可能希望此代码将div的文本更改为"思考",然后运行longPrimeCalc()一个需要几秒钟才能完成的算术函数.然而,这不是发生的事情.相反,"longPrimeCalc"首先完成,然后文本在运行完毕后更新为"思考",就好像两行代码的顺序相反.
看起来浏览器不会同步运行"innerHTML"代码,而是为它创建一个自己休闲执行的新线程.
我的问题:
longPrimeCalc()" 之前更新"innerHTML "?我在最新版本的chrome中测试了这个.
要在已安装的"上下文"中运行节点命令node_modules,可以在scripts字段中输入package.json.例如:
...
"scripts": {
"test": "mocha --recursive test/**/*.js --compilers js:babel-register"
}
...
Run Code Online (Sandbox Code Playgroud)
然后我可以输入npm run test我的项目根目录,然后运行mocha测试(通过调用安装的mocha二进制文件node_modules/mocha/bin).
有没有办法实现完全相同的行为,但没有创建脚本条目?例如,对于一次性"脚本"?
我想象的东西如下,相当于npm run test:
npm cmd mocha --recursive test/**/*.js --compilers js:babel-register
Run Code Online (Sandbox Code Playgroud)
有没有办法实现这个目标?
注意:我应该澄清我正在寻找真正的等价.也就是说,我的命令应该能够访问其他脚本命令等.我知道你总是可以使用node和node_modules中二进制文件的路径调用二进制文件,但这不是一个合适的解决方案.
页面加载时,我收到消息为javascript警告:
Google has disabled use of the Maps API for this application. See the Terms of Service for more information: http://www.google.com/intl/en-US_US/help/terms_maps.html.
一切正常,直到今天.Google网站管理员工具没有告诉我任何事情.
我的问题是,我可以找到更多的信息,为什么这个页面被禁止/阻止.(有很多可能的原因)
怎么做才能解锁?谁或何地发送请求?
我们有一个特殊的移动版本的网站,我们想在Android市场推广."app"实际上是网站的快捷方式,但您可以下载它并拥有一个图标,就像任何其他应用程序一样.
这可能吗?如果是这样,你可以链接我的指示吗?我无法找到任何搜索谷歌的信息.
谢谢,约拿
反引号内的反斜杠(\)以非显而易见的方式处理:
Run Code Online (Sandbox Code Playgroud)$ echo "`echo \\a`" "$(echo \\a)" a \a $ echo "`echo \\\\a`" "$(echo \\\\a)" \a \\a
但是,FAQ并未分解导致这种差异的解析规则。man bash我发现的唯一相关报价是:
当使用旧式的反引号形式的替换时,反斜杠保留其字面意思,除非后面是$,`或。
The "$(echo \\a)" and "$(echo \\\\a)" cases are easy enough: Backslash, the escape character, is escaping itself into a literal backlash. Thus every instance of \\ becomes \ in the output. But I'm struggling to understand the analogous logic for the backtick cases. What is the underlying rule and how does the observed output follow …
我已经按照本教程关于使用spork加速rspec,而且我使用的是带有ruby 1.9.2和rails 3.2.5的win7 x64盒子.一切正常,但测试仍然执行缓慢.spork是否因为操作系统不支持分叉而在Windows上做不了多少?
我还能做些什么来加快速度吗?
我也发现了类似的问题,并观看了Corey Haines关于快速测试的视频.我很喜欢这个视频,但是当我们的工具状态(由于rails启动时间导致测试速度慢,在这种情况下)决定了我们如何构建代码时,我不禁感到某些东西已经关闭.如果那个缓慢的启动时间不存在,他的方法是否需要?另一方面,测试需要10-30秒才能运行,因此TDD的许多好处都会丢失,我也会看到他的观点.
如果它是相关的,这里是spork的控制台输出,因为rspec被执行了几次:
$ bundle exec spork
Using RSpec
-- Starting to fill pool...
Wait until at least one slave is provided before running tests...
** CTRL+BREAK to stop Spork and kill all ruby slave processes **
Spork is ready and listening on 8989!
-- Rinda Ring Server listening for connections...
-- build slave 1...
Preloading Rails environment
-- build slave 2...
Preloading Rails environment
Loading Spork.prefork …Run Code Online (Sandbox Code Playgroud) 我正在玩拖动倍数的例子,我注意到了一些我无法解释的事情.
在这个片段中:
var svg = d3.select("body").selectAll("svg")
.data(d3.range(16).map(function() { return {x: width / 2, y: height / 2}; }))
.enter().append("svg")
.attr("width", width)
.attr("height", height);
Run Code Online (Sandbox Code Playgroud)
我换selectAll了select.它仍然有效,但现在的svg元素将被添加后的</body>标签.原始代码,如您所期望的那样selectAll,将它们添加到<body>标记之后.
由于原来的HTML不包含硬编码的<svg>元素,我认为无论是select和selectAll刚刚返回空选择.所以我无法弄清楚为什么它们导致不同的行为.
我只是在寻找解释.谢谢!
我有一个排序的唯一数组,并希望有效地插入一个不在数组中的元素,如下所示:
a = [1,2,4,5,6]
new_elm = 3
insert_at = a.bsearch_index {|x| x > new_elm } # => 2
a.insert(insert_at, new_elm) # now a = [1,2,3,4,5,6]
Run Code Online (Sandbox Code Playgroud)
该方法bsearch_index不存在:only bsearch,返回匹配元素而不是匹配元素的索引.有没有内置的方法来实现这一目标?
我试图用rest-client宝石阅读400响应的主体.问题是rest-client通过将它作为一个错误来回应400,所以我无法找出任何方法来获取正文.
这是激励性的例子.考虑这个对facebook图API的调用:
JSON.parse(RestClient.get("https://graph.facebook.com/me?fields=id,email,first_name,last_name&access_token=#{access_token}"))
Run Code Online (Sandbox Code Playgroud)
如果access_token过期或无效,Facebook会做两件事:
{
"error": {
"message": "The access token could not be decrypted",
"type": "OAuthException",
"code": 190
}
}
Run Code Online (Sandbox Code Playgroud)
因为400响应引发了错误,我无法弄清楚如何获得响应的主体.也就是说,例如,如果我在curl或浏览器中运行上面的GET请求,我可以看到正文,但我无法弄清楚如何在restclient中访问它.这是一个例子:
begin
fb_response = JSON.parse(RestClient.get("https://graph.facebook.com/me?fields=id,email,first_name,last_name&access_token=#{access_token}"))
rescue => e
# 400 response puts me here
# How can I get the body of the above response now, so I can get details on the error?
# eg, was it an expired token? A malformed token? Something else?
end
Run Code Online (Sandbox Code Playgroud) 我目前在托管的Web服务器上有一个svn存储库.我在本地工作,将我的更改提交到我的服务器上的存储库,然后当我准备推送更改时,通过我的实时文件夹中的ssh运行"svn update".
我现在正在添加一个暂存站点,它将驻留在同一台服务器上.它只是同一台服务器上的另一个文件夹.
问题是我将在登台服务器上对网站进行稍微更大的更改,这可能需要长达一周的测试时间.在此期间,我可能希望对不需要测试的实时网站进行小的修饰.我们来举个例子:
这迫使我跟踪转速并不断更新和恢复.有没有更好的办法?我觉得我应该在这里使用分支和标签,但我不明白究竟是怎么回事.
谢谢,约拿