是否有可能获得XMLHttpRequest的进度(上传的字节数,下载的字节数)?
当用户上传大文件时,这对于显示进度条很有用.标准API似乎不支持它,但也许在那里的任何浏览器中都有一些非标准扩展?毕竟,这似乎是一个非常明显的功能,因为客户端知道上载/下载了多少字节.
注意:我知道"轮询服务器进度"替代方案(这就是我现在正在做的事情).这个问题的主要问题(除了复杂的服务器端代码)通常是,在上传大文件时,用户的连接是完全没有的,因为大多数ISP提供了较差的上游.因此,提出额外请求并不像我希望的那样响应.我希望有一种方法(可能是非标准的)来获取这些信息,浏览器始终拥有这些信息.
我们有一个使用Knockout和Backbone构建的单页面应用程序,它使Ajax调用服务器并执行一些复杂的数据缓存和DOM渲染.我们非常想测量用户看到的性能(并将其记录回服务器).我似乎无法理解浏览器Navigation Timing API是否会对此有用.从我在示例中看到的,导航时序API与之相关,window.performance并且这仅限于页面加载,不适合监视Ajax行为.对或错?如果不对,我还能使用什么?
我喜欢设置自定义检测点,在这些点之间测量时间,例如,对于使用服务器结果进行DOM渲染的Ajax调用.
javascript ajax profiling single-page-application navigation-timing-api
Mixpanel文档列出了两个Javascript API:Integration API和People Analytics.两者都有identify()识别用户的方法:
mixpanel.idenfity(...)
mixpanel.people.identify(...)
Run Code Online (Sandbox Code Playgroud)
他们有什么不同?
我想使用Rubymine的IDE调试器来调试在命令shell中运行的ruby进程,因为它是由"rails console"生成的.
在运行Web服务器(从Rubymine中)或测试套件(也在Rubymine中运行)时,我已经从调试器中获得了很大的利润.
但是,如果Rubymine没有启动该过程,我将无法连接调试器.
我在Ubuntu上使用的版本Rubymine 3.2.4与Sun Java 1.6.0_26,Ruby REE 1.8.7以及最新的调试宝石:
ruby-debug-base (0.10.4)
ruby-debug-ide (0.4.17.beta8)
Run Code Online (Sandbox Code Playgroud)
思考?
我正从Java中访问一个从Rails应用程序写入的MongoDB实例.我正在检索应存储在Long中的整数值,因为它们可能超过32位.
这段代码将编译:
this.profile_uid = (Long)this.profile.get("uid");
Run Code Online (Sandbox Code Playgroud)
但是,我收到类型转换运行时错误:
Exception in thread "main" java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Long
Run Code Online (Sandbox Code Playgroud)
这可能是因为Mongo将字段作为Integer返回,但是我知道一些ID可以作为Longs出现,并且由于各种原因我无法更改写入DB的类型(来自另一个应用程序); 在某些情况下它可能是32位而在其他情况下可能是64位.
Java应用程序需要处理任何一个,我不想遇到某种截断或溢出问题.我想在Java端将其读作Long.
我已经尝试了下面的解决方法,它似乎运行,但我不知道我是否可以通过这种方式避免截断或溢出问题.我不确定NumberJava中的类是什么.
this.profile_uid = ((Number)this.profile.get("uid")).longValue();
Run Code Online (Sandbox Code Playgroud)
这是合法的吗?它有什么副作用?还有其他/更好的方法吗?
根据FB SDK,我必须包含一个带有相应标题的通道文件.
作为一个主要的NOOB和Rails而不是PHP开发人员我不知道如何做到这一点.
以下是他们为php提供的示例:
<?php
$cache_expire = 60*60*24*365;
header("Pragma: public");
header("Cache-Control: max-age=".$cache_expire);
header('Expires: ' . gmdate('D, d M Y H:i:s', time()+$cache_expire) . ' GMT');
?>
<script src="//connect.facebook.net/en_US/all.js"></script>
Run Code Online (Sandbox Code Playgroud)
我想知道如何在Rails 3中做同样的事情
我正在使用Twitter的Bootstrap库的Bootswatch Cyborg主题.然而,Cyborg主题具有深色背景和浅色前景色,从Bootstrap默认值看为负面.图标集PNG采用浅色背景,不会显示在Cyborg主题中.是否为深色背景设置了相应的图标?我在Glyphicons的网站上找不到一个.是否有一个简单的技巧将图标变成负面颜色?
我试图断言,使用RSpec,给定的Mongoid查询不会加载记录,只检查它的存在,因为记录很大(几MB),代码只需要知道记录是否存在.
我一直在玩.exists?关联,但由于某种原因似乎不适用于has_one:
class Profile
include Mongoid::Document
has_one :chart
end
class Chart # this is heavy
include Mongoid::Document
belongs_to :profile
end
profile.chart.exists? # fails if chart returns nil
Run Code Online (Sandbox Code Playgroud)
该exists?代理方法显然不适合工作has_one的关系; 虽然有记载has_many.我想制作自己的,但我需要在RSpec中测试确实只记录未加载的记录.我正在考虑做一些事情,比如测试为Mongo驱动程序生成的基础查询,就像你可以做的那样.to_sql.是否有相应的Mongoid方法?
我正在使用Mongoid 3.0编写map/reduce操作.我正在尝试使用该print语句来调试JS函数.这是来自MongoDB文档的疑难解答建议,例如:
reduce = %Q{
function(user_id, timestamps) {
var max = 0;
timestamps.forEach(function(t) {
var diff = t.started_at - t.attempted_at;
if (diff > max) { max = diff; }
});
print(user_id + ', ' + max);
return max;
};
}
MyCollection.all.map_reduce(map, reduce).to_a
Run Code Online (Sandbox Code Playgroud)
不幸的是,print语句的输出既没有显示在控制台上也没有显示在日志上 - 似乎在DB,驱动程序,Moped或任何中间层之间的某处被抑制.有没有办法打开它?
我们希望在屏幕上放置一个弹出式登录窗口,同时调暗背景并禁用鼠标点击它.
我们正在使用jQuery,这是一个Rails 3应用程序,我们正在寻找一个精益插件.
令人困惑的是,想出一个同样支持IE7和IE8的框架是令人费解的.其他浏览器(Firefox,Chrome,Safari,IE9)没有造成太大问题.
如果可能的话,我们还希望避免使用背景图片叠加层,因为需要考虑周到问题.出于同样的原因,如果可能的话,我们不想加载整个效果库.
思考?
谢谢,
狼
jquery modal-dialog popup jquery-plugins internet-explorer-7
关于引擎开发和使用虚拟应用程序进行测试已经写了很多.
在我们的例子中,我们正在开发一个不是独立实体的引擎,但它依赖于真正的Rails 3应用程序.我们仍然希望此代码存在于引擎中,而不是成为应用程序的一部分,因为引擎的工作是从具有自己的表和模型映射的遗留系统导入数据,并且我们希望最终再次删除它.
旧遗留表和新模式之间的数据映射很复杂,我们希望TDD(使用rspec)引擎.
/spec/dummy_app用一个指向真正的Rails 3应用程序的git子模块替换了.config/application.rb,需要引擎(这是虚拟应用程序所做的) ,如本书第15-16页所述.lib文件夹包含在加载路径$:中spec_helper,路径可用.require成spec_helper.rb并没有解决问题.思考?
我看到Ruby 1.9有一个新的枚举器,slice_before.该API文档是很神秘的.
特别是我对变得initial_state有价值的变化感到困惑.
例如,每当元素的渐进总和超过某个值时,我想将带数字的数组拆分为子数组:
a = [1,2,0,1,2,3]
a.slice_before(0) do |elem, sum|
sum += elem
sum > 3
end.to_a
Run Code Online (Sandbox Code Playgroud)
预期产量:
[[1,2,0], [1,2], [3]]
Run Code Online (Sandbox Code Playgroud)
我认为总和就像是"随身携带"或"备忘录",inject但似乎并没有成功.
这段代码中的故障是一个神秘的错误:
TypeError: can't dup Fixnum
from (irb):43:in `each'
Run Code Online (Sandbox Code Playgroud)
它看起来像是slice_before不接受Fixnum初始值.为什么?Ruby bug?
我可以通过保留自己的状态变量来解决这个问题,但这并不是我想要的漂亮的Ruby语义.
sum = 0
a.slice_before do |elem|
sum += elem
sum > 3 && sum = 0
end.to_a
# => [[1, 2, 0], [1, 2], [3]]
Run Code Online (Sandbox Code Playgroud)
那么initial_state可以用于此目的吗?文档中的示例似乎主要是关于文本处理.我正在使用Ruby 1.9.3p194.
ajax ×2
javascript ×2
mongodb ×2
mongoid ×2
rspec ×2
bootswatch ×1
casting ×1
css-sprites ×1
debugging ×1
facebook ×1
heroku ×1
irb ×1
java ×1
jquery ×1
long-integer ×1
mapreduce ×1
mixpanel ×1
modal-dialog ×1
mongoid3 ×1
newrelic ×1
popup ×1
profiling ×1
progress-bar ×1
resque ×1
ruby ×1
ruby-1.9 ×1
ruby-1.9.3 ×1
rubymine ×1
tdd ×1