我已经开始寻找一些用于动画的外部 GWT库,但对于我想要的东西来说,它们似乎都有点过大了。
我试图模仿GWT 中的JQuery Tools 滚动标签插件来实现滚动导航(想想 iphone)。用户单击一个项目,页面滚动到该项目的子面板,该面板也可能有可以单击的子面板。
我需要做的就是在某个固定的时间内前后滑动一个 div,x 个像素
我发现的关于在 GWT 中编写动画的唯一真正的教程已有 2 年历史,并且似乎有点冗长(管理单个帧等......)
是否没有更简单的解决方案可以轻松地将 div 从一个位置移动到另一个位置而不需要所有额外的麻烦?
请原谅我,但我来自 jQuery 编码,它简单而轻松地内置了此功能。
我有一个FlowPanel,我试图像iphone导航一样来回动画.(有关如何执行此操作的原始问题,请参阅此帖子)
所以我让它"正常工作"下面显示的代码.我说在引号中工作,因为我发现我的滚动条的最终位置不精确,滚动时总是会改变.
GWT.log总是说我正在寻找的实际值,所以例如下面的调用scrollTo,我的GWT.log说:
ScrollStart:0 scrollStop:-246
但是当我实际分析fireBug中的元素时,它的css,左侧位置绝不是-246px.有时它的关闭时间高达10px,因此我的面板在完成之前就已停止滚动.
最糟糕的是这个导航器来回动画,所以后续的点击可以真正地将其抛弃,我需要像素完美的定位,否则整个事物都会看起来不对劲.
除了我已经完成的工作之外,我甚至不知道从哪里开始调试.任何提示都表示赞赏.
编辑:其他日志记录信息:
登录onUpdate显示:
Updating: progress: 0.09319577524960648 position: -22.926160711403195
Updating: progress: 0.1328387452821571 position: -32.67833133941065
Updating: progress: 0.609071620698271 position: -149.83161869177468
Updating: progress: 0.7269952498697734 position: -178.84083146796425
Updating: progress: 0.9852532367342712 position: -242.37229623663072
AnimationComplete: final scrollStart/scrollStop: 0/-246
Run Code Online (Sandbox Code Playgroud)
为什么它以0.98%结束?
调用动画的代码
scroller = new Scroller();
scroller.scrollTo(-246,400);
Run Code Online (Sandbox Code Playgroud)
动画代码
public class Scroller extends Animation {
private FlowPanel scroller;
private final Element e;
public Scroller(){
scroller = new FlowPanel();
e = scroller.getElement();
}
public void scrollTo(int position, int milliseconds) {
scrollStart …
Run Code Online (Sandbox Code Playgroud) 我一直在玩几个js模板引擎.他们似乎都提供了相当标准的功能,并使JS生成html更加简单.
我还没有发现一个引擎,它提供了元素的数据绑定.我希望能够做到这样的事情:
我主要喜欢这个,所以我不必继续向生成的html添加事件等.我有一个应用程序,每2秒轮询一次新数据,并进行innerHTML样式更新将使它非常烦人,因为我必须重复更新与该HTML相关联的dom事件.
有没有人见过这种类型的js模板引擎?
由于我对对象的行为测试感兴趣,我正在阅读prag progs的(仍测试版)rspec书.从我到目前为止所收集的内容(警告:仅读取30分钟后),基本思想是我希望确保我的对象在外部表现为"外部",即在其输出中以及与其他对象相关的行为.
那么我应该只是测试我的对象以确保与其他对象的正确输出/交互吗?
这可能是完全错误的,但考虑到所有关注我的对象在系统中的行为,似乎这是一种意识形态.如果是这样,我们如何专注于对象的实现?我如何测试我的私有方法正在做我想要它做的所有不同类型的输入?
我想这个问题可能适用于所有类型的测试?我还是TDD和BDD的新手.
我在javascript中做了很多
some_var || some_var = function(){ return "blah"}();
Run Code Online (Sandbox Code Playgroud)
我想知道红宝石中的等价物是什么,所以我能做到
some_var ||= # sequence of operations
Run Code Online (Sandbox Code Playgroud)
编辑
这Proc.new.call
引起了我的注意,但我也是在某人的代码中遇到过这个:
a ||= begin
# do some stuff
# return some stuff
end
Run Code Online (Sandbox Code Playgroud)
这在功能上等同于使用Proc.new.call
??
edit2 人们似乎对我想要实现的目标感到困惑.想象一下这在javascript中:
function someExpensiveFunction(){
# do some really expensive stuff
return "some expensive calculations"
}
a || a = someExpensiveFunction();
Run Code Online (Sandbox Code Playgroud)
显然设置a
一次......一次调用昂贵的函数...在这种情况下我不关心范围,我只需要我的返回值是一个计算的事件序列而不是单个值.
我很确定我上面的例子a ||= begin; ... end;
是等价的......
我有一个Rails应用程序,它使用Cloudfront作为其CDN和sprockets来压缩资产并设置长Cache-Control
标头.
对资产的第一个请求给我响应头像这样:
Cache-Control:public, max-age=31536000 Connection:close Content-Encoding:gzip Content-Type:application/javascript Etag:"892a3afb514e3c84646835f9ef101026" Last-Modified:Tue, 17 Jan 2012 16:05:17 GMT Server:thin 1.2.11 codename Bat-Shit Crazy Vary:Accept-Encoding Via:1.0 c662f4e5a3bc7b224ce1bbecb0a23d82.cloudfront.net:11180 (CloudFront), 1.0 fc4797024fafe16fcc03e892c23f078d.cloudfront.net:11180 (CloudFront) X-Amz-Cf-Id:bd2a89fb81bba2513f30d6940347693ef483defb4783da06d81b002af23545c39b9176b2c7cb144f,VF69FYlYU8ezzHQp7QkU2GvEQ8NmDqEwRX-wu7H63yNqE1ZlTaAq3g== X-Cache:Miss from cloudfront X-Runtime:0.012413 X-Ua-Compatible:IE=Edge,chrome=1
完善.它错过了Cloudfront的缓存,从我的应用程序中获取了缓存,因此它应该从现在开始加载它.
现在......如果我刷新页面,我会收到以下响应标题:
Connection:keep-alive Server:thin 1.2.11 codename Bat-Shit Crazy Via:1.0 86123d99569c9296c8605243e9a10621.cloudfront.net:11180 (CloudFront), 1.0 de9fc23d505dae3d19973a98bfa1eba0.cloudfront.net:11180 (CloudFront) X-Amz-Cf-Id:a7bf6ffb30c43d306835190d210aeb8ec794c1ff619ad7aaecbad220c1822fe165bda624ae8382e1,bcij_88KOAvLPSqEKDRSvOBjEj7atiKBCAjSbqc2cfdb-BHOTi--LA== X-Cache:RefreshHit from cloudfront X-Runtime:0.006909 X-Ua-Compatible:IE=Edge,chrome=1
看起来它打到了Cloudfront.我得到了304 not modified
.所以我似乎并没有再次下载文件,但我发现这个请求也是我的源服务器.
为什么会这样?Cloudfront现在不应该始终缓存我的资产吗?我正在对我的资产进行版本控制,所以除了第一个请求之外,我真的绝不希望从服务器获取它.有什么办法可以强迫这种行为吗?
我有这3个型号:
class User < ActiveRecord::Base
has_many :permissions, :dependent => :destroy
has_many :roles, :through => :permissions
end
class Permission < ActiveRecord::Base
belongs_to :role
belongs_to :user
end
class Role < ActiveRecord::Base
has_many :permissions, :dependent => :destroy
has_many :users, :through => :permissions
end
Run Code Online (Sandbox Code Playgroud)
我想在一个sql语句中找到一个用户和它的角色,但我似乎无法实现这一点:
以下声明:
user = User.find_by_id(x, :include => :roles)
Run Code Online (Sandbox Code Playgroud)
给我以下问题:
User Load (1.2ms) SELECT * FROM `users` WHERE (`users`.`id` = 1) LIMIT 1
Permission Load (0.8ms) SELECT `permissions`.* FROM `permissions` WHERE (`permissions`.user_id = 1)
Role Load (0.8ms) SELECT * FROM `roles` …
Run Code Online (Sandbox Code Playgroud) 我是一个全新的java,来自红宝石世界.我喜欢ruby的一件事是非常简洁的语法,例如|| =.
我当然意识到编译语言是不同的,但我想知道Java是否有类似的东西.
特别是,我在ruby中所做的一切都是这样的:
someVar ||= SomeClass.new
Run Code Online (Sandbox Code Playgroud)
我认为这非常简洁,但功能强大,但到目前为止,我能想到实现相同目标的唯一方法是非常冗长:
if(someVar == null){
someVar = new SomeClass()
}
Run Code Online (Sandbox Code Playgroud)
只是尝试改进我的Java-fu和语法肯定是我不支持的一个领域.
来自rails postgresql_adapter.rb.我得到它想要做的事情,我只是不知道它是如何发生的.这真的与<< - 我丢失的SQL有关.
exec_query(<<-SQL, 'SCHEMA', binds).rows.first[0].to_i > 0
SELECT COUNT(*)
FROM pg_tables
WHERE tablename = $1
#{schema ? "AND schemaname = $2" : ''}
SQL
Run Code Online (Sandbox Code Playgroud)
我之前看过代码你可以说:
blah = <<-X
some
lines
of
test
X
Run Code Online (Sandbox Code Playgroud)
但我从未在函数调用的参数中看到过这种情况.我真的很困惑.有人可以向我解释一下究竟发生了什么吗?
根据文档,:autosave => false
在保存父项时,设置关联不应保存这些关联.这对我来说似乎不起作用.我刚刚创建了一个vanilla Rails 3.0.8应用程序,这就是我得到的:
class Foo < ActiveRecord::Base
has_many :bars, :autosave => false
accepts_nested_attributes_for :bars
end
class Bar < ActiveRecord::Base
belongs_to :foo
end
f = Foo.new :name => 'blah', :bars_attributes => [{:name => 'lah'},{:name => 'lkjd'}]
f.save
f.bars
=> [#<Bar id: 1, name: "lah", foo_id: 1, created_at: "2011-06-20 20:51:02", updated_at: "2011-06-20 20:51:02">, #<Bar id: 2, name: "lkjd", foo_id: 1, created_at: "2011-06-20 20:51:02", updated_at: "2011-06-20 20:51:02">]
Run Code Online (Sandbox Code Playgroud)
什么??它为什么要保存bars
?
我觉得我正在服用疯狂的药!我错过了什么?
更新:看起来好像accepts_nested_attributes_for
自动保存子项,即使它们不是使用嵌套属性功能构建的.它认为这是一个错误.