小编Ste*_*ven的帖子

jQuery放弃了所有杰出的AJAX请求

是否有任何简单的方法可以放弃所有优秀的jQuery AJAX请求?我的应用程序能够提取大量的同步请求,因此竞争变得有问题.我已经提出了一些hackish解决方案(即,在请求完成时放入一个检查的标志),但是让全局停止所有未完成的请求功能会更好.

ajax jquery

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

是否有一种直接的方式来记录在Ruby中的对象上调用的方法?

有没有快速的方法来跟踪对象上调用的方法?通常,当我在公共界面下方的某个级别处使用gem时,我会遇到难以追踪的错误.最终,我最终通过源代码跟踪对象并将所有内容保留在我的脑海中.

但是能够调用像#log_method_calls对象这样的东西会很好,比如说,调用它的所有方法都会打印到stdout或者其他东西.有没有办法实现这个目标?

ruby

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

我应该如何使用捆绑安装 - 与Rails应用程序一起使用?

bundle install --standalone 看起来是一个很好的主意,但是我很难绕过如何使用它,这不会要求你安装rubygems或bundler.

它会生成一个bundler/setup.rb,它可以添加我的宝石的lib和ext目录,看起来是有序的.据推测,我需要做的就是将它添加到加载路径中,一切都很好.

但是bundler/setup.rb似乎并不需要任何东西.

现在,这很好,因为正常的捆绑器/设置也不需要任何东西,并将其留给应用程序进行调用 Bundler.require

Rails默认情况下需要这个小小的ditty:

if defined?(Bundler)
  Bundler.require(*Rails.groups(:assets => %w(development test)))
end
Run Code Online (Sandbox Code Playgroud)

在它点击的时候,Bundler没有定义(bundler/setup.rb没有定义它),所以它跳过了块.

那么我究竟如何需要捆绑器.如果bundle install --standalone实际捆绑了捆绑包,大概是我可以手动调用require bundler然后Bundler定义,但它似乎从捆绑中排除了自己.

那里有一个实际使用的应用程序bundle install --standalone,如果有的话,怎么样?

rubygems ruby-on-rails bundler

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

更改自定义属性时,Webkit(Chrome/Safari)不会更新显示

工作示例:http://jsfiddle.net/JVVcA/

HTML:

<fieldset id="data-page">
    <legend>data-page</legend>
    <button rel="page1">Highlight page one</button>
    <button rel="page2">Highlight page two</button>
    <div data-page="page1">
        <h1 id="page1">Page one</h1>
        <h1 id="page2">Page two</h1>
    </div>
</fieldset>

<fieldset id="class">
    <legend>class</legend>
    <button rel="page3">Highlight page three</button>
    <button rel="page4">Highlight page four</button>
    <div class="page3">
        <h1 id="page3">Page three</h1>
        <h1 id="page4">Page four</h1>
    </div>
</fieldset>
Run Code Online (Sandbox Code Playgroud)

CSS:

fieldset { border: 1px solid #aaa; padding: 5px; }

h1 { background-color: white; }
div[data-page="page1"] h1#page1 { background-color: pink; }
div[data-page="page2"] h1#page2 { background-color: pink; }
div.page3 h1#page3 { background-color: cyan; } …
Run Code Online (Sandbox Code Playgroud)

html css css3

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

有没有全球方法来检查是否已在Flash中授予麦克风访问权限?

我目前正在建立一个需要麦克风互动的网站.我已经构建了处理声音及其外部接口的Flash组件.

正如您可能猜到的,外部接口的目的是允许UI完全由HTML/CSS/Javascript处理.除了几件事之外,它的效果很好.首先,如果Flash影片不可见,它将停止响应.我已经通过在视口中未使用的部分中将其作为1像素乘1像素来解决这个问题.

另一个问题是Flash有时会出现一个安全对话框,要求用户进行访问.现在,我已经想出如何强制导致安全对话框出现:

Security.showSettings(SecurityPanel.PRIVACY);
Run Code Online (Sandbox Code Playgroud)

很好(旁边的问题:当设置被触发时,我怎么能让这个回火?).

但这有两个缺点:

1. It doesn't theoretically catch the case where the user revokes privileges during the running of the application.
2. It doesn't detect if the user has already granted permission.
Run Code Online (Sandbox Code Playgroud)

我想办法解决这两个问题的方法是获得一个全局标志(或者更有帮助的是,一个可绑定的属性或事件)来获取当前的安全状态以及何时更改它.

任何见解将不胜感激.

更新

我已经戳了一下,并写了这个:

import flash.system.Security;
import flash.system.SecurityPanel;
import flash.external.ExternalInterface;
import flash.media.Microphone;
import flash.events.StatusEvent;

var m:Microphone = Microphone.getMicrophone();

m.addEventListener(StatusEvent.STATUS, function(e:StatusEvent){
    if(e.code == "Microphone.Unmuted") {
        ExternalInterface.call('window.SpeechWrapper.messenger.microphonePermissionGranted');
    } else {
        ExternalInterface.call('window.SpeechWrapper.messenger.microphonePermissionDenied');
    }
});

if(m.muted) {
    Security.showSettings(SecurityPanel.PRIVACY);
} else {
    ExternalInterface.call('window.SpeechWrapper.messenger.microphonePermissionGranted');
}
Run Code Online (Sandbox Code Playgroud)

但问题是,由于似乎没有办法弄清楚用户是否要求在安全域中记住选择,我无法提供一个独立的轻量级swf,旨在请求权限.

apache-flex flash actionscript-3 flash-builder

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

将Markdown解析委托给客户端有什么缺点?

我打算在即将到来的项目中加入Markdown.在过去,我刚刚使用了预打包的服务器端Markdown解析器,重新清理了HTML输出(这是一个不必要的步骤?)并将其发送给客户端.

我有兴趣将至少这部分视图渲染卸载到客户端.我以前在Rails应用程序中使用了客户端Javascript Markdown解析器并取得了巨大成功.我委托body对象来监视类markdown-parseme或类似的DOM插入,然后解析它并用结果替换原始文本.

但这是我第一次考虑将其用于野外生产网站.让客户端处理Markdown渲染时会遇到什么问题和安全问题?是否有任何特定的库将这些问题考虑在内?

编辑:脑海中浮现的明显问题是"那些没有Javascript的人".检测没有启用Javascript的浏览器并实现允许客户端(可能手动)标记他们没有JS并将解析移动到服务器端的机制完全在我们的能力范围内.我非常想调查是否存在严重的问题,除了这个普通的兼容性问题之外,将Markdown解析卸载到客户端.渲染一个没有输出缓存的大小合适的页面会增加一个不可忽略的响应时间,通过它,服务器负载,如果我们有信心将该任务从95%的用户移出服务器,那将是很好的.

javascript markdown ruby-on-rails

5
推荐指数
1
解决办法
2180
查看次数

如何在视图文件中管理if-then爆炸?

如果这不遵循良好的问题指南,我很抱歉,但我希望它在课堂上如何管理CSS爆炸,并收到类似有用的响应.

我熟悉一些基本的视图冗余缓解策略,如下所示:

  • 在适当的地方使用帮助者
  • 不要重复自己
  • 使用部分和布局

如果我在上面的列表中遗漏了一些重要的想法,请随意提出建议.

尽管如此,我仍然认为在我看来有几个维度/自由度,导致很多if-then语句或至少三元块.例如,在我正在搞乱的事情中,我正在为一个程序的标题栏工作,当三个"大"变量调用视图时:

  • 用户是否为管理员
  • 用户是否已登录
  • 正在查看的页面是属于用户还是其他人

它最终看起来像这个烂摊子:

<% content_for :subheader do %>
  <div class="row">
    <% if @user %>
      <% if @user == current_user %>
        <%= link_to 'My programs', user_programs_path(current_user), :class => 'active' %>
      <% else %>
        <%= link_to "#{@user.username}'s programs", user_programs_path(@user), :class => 'active' %>
      <% end %>
      <%= link_to 'Browse all programs', programs_path %>
    <% else %>
      <% if current_user %>
        <%= link_to 'My programs', user_programs_path(current_user) %>
      <% end %>
      <%= link_to 'Browse …
Run Code Online (Sandbox Code Playgroud)

ruby model-view-controller ruby-on-rails view ruby-on-rails-3

5
推荐指数
1
解决办法
4252
查看次数

如何从闭包范围动态访问局部变量(通过其名称的字符串形式)?

在 Javascript 中,我习惯于通过使用[]操作符来“动态”访问已知命名空间中的变量(如果我在这里使用了错误的词,请纠正我)。例如(来自全局命名空间):

var a = 1;
window['a']; # => 1
Run Code Online (Sandbox Code Playgroud)

或者来自对象类型命名空间:

var a = { b: 1 };
a['b']; # => 1
Run Code Online (Sandbox Code Playgroud)

我熟悉如何this确定的基础知识:

var a = function(){ return this['c']; };
var b = { c: 1 };
a.apply(b); # => 1;
Run Code Online (Sandbox Code Playgroud)

但是在函数本身内,我如何访问我刚刚实例化(或重新定义)的局部变量var

即,我希望以下函数调用返回1调用a

function(){
  var a = 1;
  return a;
}
Run Code Online (Sandbox Code Playgroud)

你不能使用,window['a']因为a是在本地定义的,你不能使用,this['a']因为this根据调用函数的上下文而改变。

在现实环境中,我会简单地重构以避免动态创建和访问局部变量,因为这通常是一个坏主意,但作为一个学术问题,我很好奇是否可以a通过其字符串名称进行访问。

javascript closures

5
推荐指数
1
解决办法
1698
查看次数

如何在capistrano部署中管理捆绑的gem?

目前,我刚刚运行以下内容:

在'deploy:update_code'之后,'deploy:bundle'

namespace :deploy do
  task :bundle do
    run "cd #{release_path} && bundle install --deployment --without development test staging"
  end
end
Run Code Online (Sandbox Code Playgroud)

现在这个工作正常,但捆绑包最终会安装所有的宝石vendor/gems.虽然我理解将gems隔离到每个版本的优点(与使用共享文件夹相反,哪些(?)可能导致回滚时出现错误等),当然有一种更好的方法可以做到这一点,而不是部署和节省磁盘空间的时间很长.

capistrano ruby-on-rails

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

如何从Rails中的资源中获取带连字符的类名?

在Rails中,如何从资源转到包含用连字符(如CSS类名称)样式化的类名的字符串?我想要一个方法#hyphenated_class_name或类似的东西,我可以应用于ActiveRecord资源,比如,类MyResource,然后回来my-resource.

ruby-on-rails

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