Javascript 的执行环境分为三个 global, function 和 eval code。
// global context
function testFn() {
// context1
var localVar = 10;
function innerFn(innerParam) {
// context2
alert(innerParam + localVar);
}
return innerFn;
}
var someFn = testFn();
someFn(20); // 30
程序按执行顺序将 执行上下文(栈帧)压入栈 压栈顺序 global -> context1 -> context2 弹栈顺序 context2 -> context1
Javascript 提供了一种机制可以让 context2 访问到 context1,我没找着相关虚拟机实现。 类似 Java 的内部类是在编译时给 内部类一个隐含成员指到外部实例。Javascript 就是通过作用域链查找到上一个执行上下文。
innerFn 在执行前 testFn 是不会出栈的,所以可以在 innerFn 回溯到 testFn 的上下文。
#2 楼 @zqalyc 看了一下源码,也是开启一个独立的后台进程,不过不同 cron。那个 GEM 只在初始化的时候开启一个常驻进程,通过线程派发执行任务,效率上要好很多。
https://github.com/jmettraux/rufus-scheduler/blob/master/lib/rufus/scheduler.rb#L448
在运行的时候应该会打印 pid 到 lockfile,那个就是 rufus-scheduler 的进程 id
# 指定 lockfile
scheduler = Rufus::Scheduler.new lockfile: '/tmp/scheduler.stat'
以上只供参考,我没用这个 gem
whenever
用的是 cron,好像每次执行任务要新开一个 ruby 进程,需要加载 rails environment。不适合间隔短的定时任务
<%= image_tag Nokogiri::HTML(article.body).css('img').first.try('[]', 'src') || '/uploads/image/201306/0faab1669697.jpg' %>
没用过这个,不过你想要的功能我这里倒收藏了俩: http://colorschemedesigner.com/ https://kuler.adobe.com/create/color-wheel/
#34 楼 @small_fish__ 跟 Erlang 的 list_to_atom 一个道理,Erlang 的 atom 大概限制在百万左右,并且不会回收,如果恶意向 list_to_atom 发送随机字符串,很快把 atom 表撑爆。Ruby 对应的就是 String#to_sym
自己的项目会用,团队就算了。感觉 coffee、haml、slim 这些都是写的人很爽,看的人骂娘。
目前就 jQuery 的文档能用,其他全部下完之后卡住
原来要安装 bsdtar..不过程序没给提示 orz
我用这货来处理 windows 的编码问题,不过 ICU 有时候会将 gb18030 识别成 韩文,暂时无解。charlock_holmes
devise 没用过不清楚。sorcery 可以给 RememberMe#login_from_cookie 打补丁,记录登录来源是 cookie 还是 page。后面就随意了..
LS 的好复杂..
我的方法是用 JS 拿到 nav 下面所有的链接,移除 active
,然后跟当前浏览器地址匹配,对得上的就给它加上 active
。当然,这有很大的局限。不过省了很多 if else。另外,可以扩展到级联菜单上
不复杂的话,我会移到前端去做.. 参照一下这个:https://github.com/jhough10/Centurion/blob/master/js/centurion.js#L18
之前试过 modal 插件好像有内存泄露,不知道现在咋样了
#7 楼 @jarorwar 回到这里 https://giveaway.ripple.com/,下面那个框贴上拿到的 giveway code
#7 楼 @small_fish__ #6 楼 @realwol
改了一下,支持 Rails4 和 Redis 了