小编Tre*_*ham的帖子

CoffeeScript封装和变量访问

试图理解CoffeeScript实例和类变量是如何工作的我带来了这段代码(结果在评论中).

class A
  x: 1
  @y: 2

  constructor: (@z) -> 
    #console.log "const x", x #ReferenceError: x is not defined
    console.log "constructor y", @y #undefined
    console.log "constructor z", @z # = 3 for A and 6 for B

  get: () -> 
    #console.log "get x", x #ReferenceError: x is not defined
    console.log "get y", @y #undefined
    console.log "get z", @z # = 3 for A and 6 for B

  get2: () => 
    #console.log "get2 x", x #ReferenceError: x is not defined
    console.log …
Run Code Online (Sandbox Code Playgroud)

coffeescript

14
推荐指数
2
解决办法
5489
查看次数

有没有办法自动生成bundledDependencies列表?

我有一个应用程序,我正在部署到Nodejitsu.最近,他们遇到了npm问题导致我的应用程序在我尝试(并且失败)重启后几个小时后离线,因为无法安装其依赖项.有人告诉我,将来可以通过列出bundledDependencies我的package.json中的所有依赖项来避免这种情况,从而导致依赖项与应用程序的其余部分一起上传.这意味着我需要我的package.json看起来像这样:

"dependencies": {
  "express": "2.5.8",
  "mongoose": "2.5.9",
  "stylus": "0.24.0"
},
"bundledDependencies": [
  "express",
  "mongoose",
  "stylus"
]
Run Code Online (Sandbox Code Playgroud)

现在,在DRY的基础上,这是没有吸引力的.但更糟糕的是维护:每次添加或删除依赖项时,我都必须在两个地方进行更改.是否有一个命令,我可以使用同步bundledDependenciesdependencies

node.js npm nodejitsu

13
推荐指数
1
解决办法
1713
查看次数

DOM输入事件与setTimeout/setInterval顺序

我的页面上运行了一段JavaScript代码; 我们称之为func1.运行需要几毫秒.当该代码正在运行时,用户可以单击,移动鼠标,输入一些键盘输入等.我有另一个代码块func2,我希望在所有这些排队的输入事件都已解决后运行.也就是说,我想确保订单:

  1. func1
  2. 所有处理程序都绑定到func1正在运行时发生的输入事件
  3. func2

我的问题是:在呼唤setTimeout func2, 0,在年底func1足以保证此排序,在所有现代浏览器?如果那条线在那个开始时出现怎么样func1?在那种情况下我应该期待什么?

请通过参考相关规范或测试用例来备份您的答案.

更新:事实证明,不,这还不够.我在原始问题中没有意识到的是,在执行当前代码块之前,输入事件甚至没有添加到队列中.所以,如果我写

// time-consuming loop...
setTimeout func2, 0
Run Code Online (Sandbox Code Playgroud)

然后,只有setTimeout运行之后,才会将在耗时循环期间发生的任何输入事件(点击等)排队.(为了测试这一点,请注意,如果耗时的循环之后onclick立即删除回调,那么在循环期间发生的单击将不会触发该回调.)因此首先排队并优先.func2

设置超时1似乎可以解决Chrome和Safari中的问题,但在Firefox中,我看到输出事件在超时80(!)之后解决.所以纯粹基于时间的方法显然不会做我想要的.

简单地将一个包裹setTimeout ... 0在另一个内部也不够.(我希望第一次超时会在输入事件排队后触发,第二次超时会在解决之后触发.没有这样的运气.)也没有添加第三或第四级别的嵌套就足够了(参见下面的更新2) ).

所以,如果有人有办法实现我所描述的(除了设置90+毫秒的超时),我将非常感激.或者使用当前的JavaScript事件模型这是不可能的?

这是我最新的JSFiddle测试平台:http://jsfiddle.net/EJNSu/7/

更新2:部分解决方法是嵌套func2在两个超时内,在第一个超时中删除所有输入事件处理程序.但是,这会产生令人遗憾的副作用,导致func1无法解决期间发生的某些甚至所有输入事件.(前往http://jsfiddle.net/EJNSu/10/并尝试快速点击链接几次以观察此行为.警报会告诉您有多少次点击?)所以这再一次让我感到惊讶; 我不认为调用setTimeout func2, 0,func2设置onclicknull,可以阻止回调运行以响应一整秒前发生的点击.我想确保所有输入事件都会触发,但我的函数会在它们之后触发. …

javascript dom input javascript-events

12
推荐指数
1
解决办法
2374
查看次数

Capistrano和Github网站的部署

所以,我有一个我认为是一个相当简单的Capistrano用例:我想从Github部署一个PHP站点.但是我遇到了很多问题.当我跑步时cap deploy,Capistrano能够克隆Github仓库(deploy:update_code步骤),但随后在deploy:finalize_update步骤中说

executing "rm -rf /var/www/sitename.com/releases/20100611144519/log /var/www/sitename.com/releases/20100611144519/public/system /var/www/sitename.com/releases/20100611144519/tmp/pids &&\\\n      mkdir -p /var/www/sitename.com/releases/20100611144519/public &&\\\n      mkdir -p /var/www/sitename.com/releases/20100611144519/tmp &&\\\n      ln -s /var/www/sitename.com/shared/log /var/www/sitename.com/releases/20100611144519/log &&\\\n      ln -s /var/www/sitename.com/shared/system /var/www/sitename.com/releases/20100611144519/public/system &&\\\n      ln -s /var/www/sitename.com/shared/pids /var/www/sitename.com/releases/20100611144519/tmp/pids"
Run Code Online (Sandbox Code Playgroud)

其次是

executing "find /var/www/sitename.com/releases/20100611144519/public/images /var/www/sitename.com/releases/20100611144519/public/stylesheets /var/www/sitename.com/releases/20100611144519/public/javascripts -exec touch -t 201006111445.23 {} ';'; true"
Run Code Online (Sandbox Code Playgroud)

我真的不明白这里发生了什么.然后它给出一个错误:

*** [err :: sitename.com] find: `/var/www/sitename.com/releases/20100611144519/public/images': No such file or directory
Run Code Online (Sandbox Code Playgroud)

每个stylesheetsjavascripts目录的另一个错误.

这是怎么回事?我意识到Capistrano主要用于部署Rails和其他Ruby应用程序,但我使用的是capistrano-php gem.我很感激任何帮助.

deployment capistrano web-deployment

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

在Python中用一行覆盖全局变量?

我知道我可以写:

foo = 'bar'
def update_foo():
  global foo
  foo = 'baz'
Run Code Online (Sandbox Code Playgroud)

但我真的需要两行代码吗?Python,唉,不允许我说

global foo = 'baz'
Run Code Online (Sandbox Code Playgroud)

我还可以将两条线混合在一起,不幸的是重复

global foo; foo = 'baz'
Run Code Online (Sandbox Code Playgroud)

还有其他快捷方式吗?我正在使用Python 2.6.5,但我很想知道Python 3的响应.

python

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

Node.js:process.argv与process.ARGV

我注意到Node定义了两者process.argvprocess.ARGV(大写).文档中没有提到后者,并且在目前为止我遇到的每一种情况都是相同的对象.

是否ARGV只是一个历史悠久的保持,或者它有一个目的?

javascript process argv node.js

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

卸载带有依赖项的Rails 3?

我喜欢Rails 3易于安装:gem install rails --pre并且所有依赖项都会自动为您安装.但是,卸载它呢?如果我这样做gem uninstall rails,我仍然有

actionmailer (3.0.0.beta3)
actionpack (3.0.0.beta3)
activemodel (3.0.0.beta3)
activerecord (3.0.0.beta3)
activeresource (3.0.0.beta3)
activesupport (3.0.0.beta3)
Run Code Online (Sandbox Code Playgroud)

我想摆脱它.最简单的方法是什么?

rubygems ruby-on-rails-3

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

使用MongoDB/PyMongo进行多个同步更新?

根据PyMongo 文档,update()一次只能更新一个文档.假设我有100个文档要同时更新.这是很多开销.有没有办法通过PyMongo使用单个MongoDB查询更新多个文档?

mongodb pymongo

10
推荐指数
1
解决办法
9264
查看次数

在Ruby中==做什么?

在Java中,==是最强的等式(指针相等):a == b总是暗示a.equals(b).但是,在Ruby中,==弱于.equals?:

ruby-1.9.2-rc2 > 17 == 17.0
 => true 
ruby-1.9.2-rc2 > 17.equal?(17.0)
 => false
Run Code Online (Sandbox Code Playgroud)

那么,我在哪里可以了解更多信息==?当我将两个对象与它进行比较时,我应该期待什么样的检查?

ruby equals

9
推荐指数
1
解决办法
3695
查看次数

在Node.js中,是否可以判断监视文件的移动位置?

fs.watch只提供两种可能的事件类型:'rename''change'.重命名文件(例如使用mv)和删除文件(例如使用rm)都会导致fs.watch报告'rename'事件.

移动文件后,fs.watch将继续报告文件(除非您明确关闭FSWatcher).当发生这种情况时,我想知道文件的移动位置.

有没有办法做到这一点,没有依次触摸系统上的每个文件来查看'change'事件何时被触发?

filesystemwatcher node.js

9
推荐指数
1
解决办法
2176
查看次数