小编Mat*_*ski的帖子

为什么lodash.each比原生forEach更快?

我试图找到运行具有自己范围的for循环的最快方法.我比较的三种方法是:

var a = "t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t".split();

// lodash .each -> 1,294,971 ops/sec
lodash.each(a, function(item) { cb(item); });

// native .forEach -> 398,167 ops/sec
a.forEach(function(item) { cb(item); });

// native for -> 1,140,382 ops/sec
var lambda = function(item) { cb(item); };
for (var ix = 0, len = a.length; ix < len; ix++) {
  lambda(a[ix]);
}
Run Code Online (Sandbox Code Playgroud)

这是在OS X上的Chrome 29上.您可以在此处自行运行测试:

http://jsben.ch/BQhED

Lodash的.each速度几乎是原生的两倍.forEach?而且,它比平原更快for?巫术?黑魔法?

javascript performance lodash

66
推荐指数
4
解决办法
8万
查看次数

强制关闭node.js http服务器中的所有连接

我有一个使用以下创建的http服务器:

var server = http.createServer()

我想关闭服务器.大概我会这样做:

server.close()

但是,这只会阻止服务器接收任何新的http连接.它不会关闭任何仍然打开的.http.close()接受回调,并且在所有打开的连接实际断开之前,回调不会执行.有没有办法强制关闭一切?

问题的根源在于我有Mocha测试,在他们的setup(beforeEach())中启动一个http服务器,然后在他们的拆卸(afterEach())中关闭它.但由于只是调用server.close()不会完全关闭,后续http.createServer()通常会导致EADDRINUSE错误.等待close()完成也不是一种选择,因为打开连接可能需要很长时间才能完成.

我需要一些强制关闭连接的方法.我可以做这个客户端,但强制关闭我的所有测试连接,但我宁愿做服务器端,即只是告诉http服务器硬关闭所有套接字.

http node.js

30
推荐指数
5
解决办法
2万
查看次数

为什么PhoneGap比浏览器慢?

我在PhoneGap和内置浏览器下在Android上运行相同的Web应用程序.该应用程序在内置浏览器上运行良好,但在PhoneGap下运行速度令人难以置信.甚至页面上的基本滚动也会在PhoneGap下断断续续.

一般来说,我可能做错了吗?我的印象是PhoneGap只使用与普通浏览器应用程序相同的WebKit渲染器,那么为什么同样的HTML和JavaScript在PhoneGap中运行得慢得多?

PS 之前曾有人问过,但由于措辞的原因,我认为最初的问题被误解了.

android cordova cordova-2.0.0

20
推荐指数
2
解决办法
9429
查看次数

NetBeans中的纯JavaScript项目?

这似乎应该是显而易见的,但我无法弄明白.

我做了很多JavaScript编码,我真的很喜欢NetBeans.不幸的是,我无法弄清楚如何在NetBeans中创建"JavaScript"项目.如果我去File - > New Project,我唯一的选择是"Java","Ruby"和"NetBeans Modules".我不想要任何这些.我的项目主要由JavaScript组成,只有一点CSS.

我通常最终创建了一个"Ruby"项目,但这看起来很迟钝,因为我实际上没有任何Ruby代码.为什么没有选项来创建"JavaScript"或"Web"项目,或者至少是一个不围绕特定语言的"通用"项目?

我在这里错过了什么吗?

javascript netbeans

15
推荐指数
1
解决办法
6944
查看次数

有没有办法看到续集表达式将生成的原始SQL?

说我有一个续集表达式,如:

db.select(:id).from(:some_table).where(:foo => 5)
Run Code Online (Sandbox Code Playgroud)

有没有办法获得这将生成的SQL字符串(即"SELECT id FROM some_table WHERE foo = 5")?我注意到调用inspectto_s上面的表达式的结果包括生成的SQL,但不知道如何直接访问它.

那些不返回数据集的Sequel表达式如何:

db.from(:some_table).update(:foo => 5)
Run Code Online (Sandbox Code Playgroud)

是否可以在执行之前从中查看SQL?

ruby sequel

15
推荐指数
1
解决办法
4760
查看次数

如何为所有材料-ui React组件全局禁用盒子阴影?

我需要为大多数material-ui组件禁用默认的box-shadows.现在我通过手动为每个组件设置样式来做到这一点,如下所示:

<FloatingActionButton style={{boxShadow: "none"}} />
Run Code Online (Sandbox Code Playgroud)

有没有办法在全球范围内这样做,也许使用主题设置?

material-ui

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

在节点中运行时使mocha"使用严格"

有没有办法让Mocha在节点上运行时以严格模式运行测试?

通常,您可以通过运行在节点中启用此功能node --use_strict.有没有办法做同样的事情mocha

javascript mocha.js node.js

8
推荐指数
1
解决办法
2697
查看次数

将PostgreSQL EXCLUDE范围约束与UNIQUE约束相结合

在PostgreSQL中,如何将范围列上的排除约束与其他标量列上的唯一约束组合在一起.或者换句话说,我如何确保范围重叠检查仅与其他列的唯一检查结合使用?

例如,说我有:

CREATE TABLE reservation (
    restaurant_id int,
    time_range tsrange
);
Run Code Online (Sandbox Code Playgroud)

我想确保每个restaurant_id都没有重叠的time_ranges.

我知道我可以创建一个像这样的独占范围约束:

CREATE TABLE reservation (
    restaurant_id int,
    time_range tsrange EXCLUDE USING gist (time_range WITH &&)
);
Run Code Online (Sandbox Code Playgroud)

但是,我如何确保time_range检查的范围是restaurant_id

postgresql constraints range

8
推荐指数
1
解决办法
1084
查看次数

调试节点集群中的杂散未捕获异常(ECONNRESET)

在我使用群集模块的node.js应用程序中,我间歇性地看到这样的错误:

events.js:71
        throw er; // Unhandled 'error' event
              ^
Error: read ECONNRESET
    at errnoException (net.js:863:11)
    at TCP.onread (net.js:524:19)
Run Code Online (Sandbox Code Playgroud)

这降低了我的整个应用程序,到目前为止,我能够处理这些的唯一方法是绑定一个process.on('uncaughtException').我想找出根本原因,但上面的堆栈跟踪是没用的.

有没有办法弄清楚导致这些异常的原因是什么?

我应该注意到,我只在群集主服务器中看到这些,而不是工作者,这使我怀疑它们与群集模块在分配与工作人员的连接方面发挥作用的方式有关.

node.js node-cluster

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

将转换后的DataFrame保存/导出回JDBC/MySQL

我正在试图弄清楚如何使用new DataFrameWriter将数据写回JDBC数据库.我似乎无法找到任何相关的文档,虽然查看源代码似乎应该是可能的.

我正在尝试的一个简单的例子看起来像这样:

sqlContext.read.format("jdbc").options(Map(
  "url" -> "jdbc:mysql://localhost/foo", "dbtable" -> "foo.bar")
).select("some_column", "another_column")
.write.format("jdbc").options(Map(
  "url" -> "jdbc:mysql://localhost/foo", "dbtable" -> "foo.bar2")
).save("foo.bar2")
Run Code Online (Sandbox Code Playgroud)

这不起作用 - 我最终得到了这个错误:

java.lang.RuntimeException: org.apache.spark.sql.execution.datasources.jdbc.DefaultSource does not allow create table as select.
    at scala.sys.package$.error(package.scala:27)
    at org.apache.spark.sql.execution.datasources.ResolvedDataSource$.apply(ResolvedDataSource.scala:200)
Run Code Online (Sandbox Code Playgroud)

我不确定我做错了什么(为什么它会解析为DefaultSource而不是JDBCRDD?)或者如果使用Spark的DataFrames API无法写入现有的MySQL数据库.

apache-spark apache-spark-sql apache-spark-1.5

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

为什么不做/ end和{}总是等价?

可能重复:
Ruby块和不带括号的参数Ruby
中这些块编码样式的区别或价值是什么?

我一直认为以下只是两种说法相同的方式:

[1,2,3].collect{|i| i * 2}

[1,2,3].collect do |i|
  i * 2
end
Run Code Online (Sandbox Code Playgroud)

但是我在我的一个ERB模板中得到了一些奇怪的行为,其中两个语法似乎做了两件不同的事情.这段代码效果很好:

<%=raw @menu.collect { |m| 
    content_tag("li") {
        link_to(m.capitalize, url_for(:controller => m))
    } 
} %>
Run Code Online (Sandbox Code Playgroud)

但当我重写它时:

<%=raw @menu.collect do |m| 
    content_tag("li") do
        link_to(m.capitalize, url_for(:controller => m))
    end 
end %>
Run Code Online (Sandbox Code Playgroud)

...我最终得到了一串连结的@menu项目.我错过了什么吗?这里有一些细小的语法糖吗?

ruby ruby-on-rails

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

在jqGrid中我是否必须手动调用saveRow来触发ajax保存请求?

这里的文档不是很清楚:

http://www.trirand.com/jqgridwiki/doku.php?id=wiki:inline_editing&s[]=editurl#saverow

saveRow在用户完成编辑表格单元格/行后,是否必须手动拨打电话,或者当行(单元格?)失去焦点时,jqGrid会自动触发saveRow吗?

editurl在初始设置中给jqGrid一个值,但是当我完成编辑一行时,我没有看到任何ajax请求.

jqgrid

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