小编Wol*_*old的帖子

如何从XMLHttpRequest获得进展

是否有可能获得XMLHttpRequest的进度(上传的字节数,下载的字节数)?

当用户上传大文件时,这对于显示进度条很有用.标准API似乎不支持它,但也许在那里的任何浏览器中都有一些非标准扩展?毕竟,这似乎是一个非常明显的功能,因为客户端知道上载/下载了多少字节.

注意:我知道"轮询服务器进度"替代方案(这就是我现在正在做的事情).这个问题的主要问题(除了复杂的服务器端代码)通常是,在上传大文件时,用户的连接是完全没有的,因为大多数ISP提供了较差的上游.因此,提出额外请求并不像我希望的那样响应.我希望有一种方法(可能是非标准的)来获取这些信息,浏览器始终拥有这些信息.

javascript ajax progress-bar

131
推荐指数
5
解决办法
13万
查看次数

我可以在单页面应用程序中使用浏览器Navigation Timing API进行Ajax事件吗?如果没有,什么是好工具?

我们有一个使用Knockout和Backbone构建的单页面应用程序,它使Ajax调用服务器并执行一些复杂的数据缓存和DOM渲染.我们非常想测量用户看到的性能(并将其记录回服务器).我似乎无法理解浏览器Navigation Timing API是否会对此有用.从我在示例中看到的,导航时序API与之相关,window.performance并且这仅限于页面加载,不适合监视Ajax行为.对或错?如果不对,我还能使用什么?

我喜欢设置自定义检测点,在这些点之间测量时间,例如,对于使用服务器结果进行DOM渲染的Ajax调用.

javascript ajax profiling single-page-application navigation-timing-api

15
推荐指数
3
解决办法
8655
查看次数

Mixpanel:识别()和people.identify()有什么区别?

Mixpanel文档列出了两个Javascript API:Integration APIPeople Analytics.两者都有identify()识别用户的方法:

mixpanel.idenfity(...)
mixpanel.people.identify(...)
Run Code Online (Sandbox Code Playgroud)

他们有什么不同?

mixpanel

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

如何将Rubymine IDE调试器附加到shell进程?

我想使用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)

思考?

ruby debugging irb rubymine rails-console

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

在Java中从MongoDB读取Integer字段时出现长类型转换错误

我正从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)

这是合法的吗?它有什么副作用?还有其他/更好的方法吗?

java casting mongodb long-integer

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

如何在Rails中编写channel.html文件(适用于Facebook)

根据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中做同样的事情

facebook ruby-on-rails

8
推荐指数
3
解决办法
1243
查看次数

如何让Bootstrap图标在深色背景上工作?

我正在使用Twitter的Bootstrap库Bootswatch Cyborg主题.然而,Cyborg主题具有深色背景和浅色前景色,从Bootstrap默认值看为负面.图标集PNG采用浅色背景,不会显示在Cyborg主题中.是否为深色背景设置了相应的图标?我在Glyphicons的网站上找不到一个.是否有一个简单的技巧将图标变成负面颜色?

css-sprites twitter-bootstrap bootswatch

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

如何在Heroku上运行时监视New Relic中的resque工作者?

我们有一个应用程序在Heroku上运行resque worker.我们已经安装了New Relic插件,根据文档,New Relic Agent应该自动修复resque工作人员.但是,我们在New Relic仪表板上的"后台作业"选项卡上看不到任何输出.

根据相同的文档,我们没有触摸该newrelic.yml文件.我们既不确定什么是错的,也不知道如何有效地调试它.我们需要做什么?

heroku resque newrelic

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

我如何测试Mongoid将生成的查询类型?

我试图断言,使用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方法?

tdd rspec mongoid

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

如何在Mongoid中获取调试map/reduce的打印输出?

我正在使用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或任何中间层之间的某处被抑制.有没有办法打开它?

mapreduce mongodb mongoid mongoid3

6
推荐指数
2
解决办法
7191
查看次数

什么jQuery模式弹出窗口或灯箱插件适用于IE7,IE8,IE9 Firefox,Chrome,Safari?

我们希望在屏幕上放置一个弹出式登录窗口,同时调暗背景并禁用鼠标点击它.

我们正在使用jQuery,这是一个Rails 3应用程序,我们正在寻找一个精益插件.

令人困惑的是,想出一个同样支持IE7和IE8的框架是令人费解的.其他浏览器(Firefox,Chrome,Safari,IE9)没有造成太大问题.

如果可能的话,我们还希望避免使用背景图片叠加层,因为需要考虑周到问题.出于同样的原因,如果可能的话,我们不想加载整个效果库.

思考?

谢谢,

jquery modal-dialog popup jquery-plugins internet-explorer-7

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

如何使用RSpec针对真实应用开发Rails3引擎?

关于引擎开发和使用虚拟应用程序进行测试已经写了很多.

在我们的例子中,我们正在开发一个不是独立实体的引擎,但它依赖于真正的Rails 3应用程序.我们仍然希望此代码存在于引擎中,而不是成为应用程序的一部分,因为引擎的工作是从具有自己的表和模型映射的遗留系统导入数据,并且我们希望最终再次删除它.

旧遗留表和新模式之间的数据映射很复杂,我们希望TDD(使用rspec)引擎.

  • 我跟随了Jose Valim的书"Crafting Rails Appliations "并使用了enginex gem.
  • /spec/dummy_app用一个指向真正的Rails 3应用程序的git子模块替换了.
  • 我无法从引擎加载模型(未定义的符号错误),因为真正的应用程序的Gemfile没有指向引擎,我也无法修改config/application.rb,需要引擎(这是虚拟应用程序所做的) ,如本书第15-16页所述.
  • 我将引擎的lib文件夹包含在加载路径$:spec_helper,路径可用.
  • requirespec_helper.rb并没有解决问题.
  • 我想知道是否有内部Rails API(或聪明的猴子补丁)挂钩到真实应用程序的启动序列并需要引擎,而不必修改真实应用程序的代码(因为它在子模块中).
  • 另一个我不完全确定的问题是我有2个Gemfiles(一个在引擎中,一个在应用程序中),当引擎处于活动状态时,它们都应该被使用.

思考?

rspec rails-engines ruby-on-rails-3

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

如何在Ruby 1.9中使用带有initial_state的"slice_before"?

我看到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.

ruby-1.9 ruby-1.9.3

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