小编kbt*_*tzr的帖子

如果Chrome中的标签处于非活动状态,如何才能使setInterval正常工作?

setInterval每秒运行一段代码30次.这很好用,但是当我选择另一个选项卡(以便我的代码的选项卡变为非活动状态)时,由于setInterval某种原因将其设置为空闲状态.

我做了这个简化的测试用例(http://jsfiddle.net/7f6DX/3/):

var $div = $('div');
var a = 0;

setInterval(function() {
    a++;
    $div.css("left", a)
}, 1000 / 30);
Run Code Online (Sandbox Code Playgroud)

如果您运行此代码然后切换到另一个选项卡,等待几秒钟然后返回,动画将继续在您切换到另一个选项卡时的位置.因此,如果选项卡处于非活动状态,则动画不会每秒运行30次.这可以通过计算setInterval每秒调用函数的次数来确认- 如果选项卡处于非活动状态,则不会是30,而只是1或2.

我想这是通过设计完成的,以提高性能,但有没有办法禁用这种行为?在我的场景中,它实际上是一个缺点.

javascript google-chrome setinterval

171
推荐指数
8
解决办法
11万
查看次数

如何在IDEA编辑器中选择下一个匹配项

Ctrl+ 在sublime中D执行find_under_expand命令.这基本上搜索了已经选择的文本的下一次出现并选中它,因此当我编辑时,它同时在两个地方进行编辑.我目前正在尝试迁移到IDEA编辑器(例如WebStorm,PHPStorm,PyCharm等),但是在这个IDE中还没有找到类似这个命令的东西.

intellij-idea pycharm phpstorm webstorm

67
推荐指数
5
解决办法
2万
查看次数

使用HACK和UNDONE注释标记

许多软件工程师熟悉可以添加到其代码注释中的特殊注释"标签"的使用,以用于搜索,自动化任务跟踪等.一些最流行的是FIXME,TODO,UNDONE和HACK.

我对HACK和UNDONE标签的使用有点困惑.请帮忙吗?

显示FIXME和TODO之间基本差异的奖励积分

language-agnostic tags documentation coding-style

11
推荐指数
1
解决办法
2054
查看次数

基于webkit的浏览器的CSS规则

我有下一个CSS代码:

#mgheader .letters {
  display: inline-block;
  margin-left: 55px;
  margin-top: -45px;
  position: absolute;
}

#mgheader .letters {
  display: inline-block;
  margin-left: 10px;
  position: absolute;
}
Run Code Online (Sandbox Code Playgroud)

现在我想在Google Chrome和Safari中执行第一个,在其他浏览器中执行第二个.

我试过这个,但第二个代码似乎总是在执行:

@media screen and (-webkit-min-device-pixel-ratio:0) {
  #mgheader .letters {
    display: inline-block;
    margin-left: 55px;
    margin-top: -45px;
    position: absolute;
  }
}   

#mgheader .letters {
  display: inline-block;
  margin-left: 10px;
  position: absolute;
}
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

css webkit media-queries

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

在另一个范围内引用时如何处理局部变量?

在我的实现中,我一直在写这样的东西:

public void SomeMethod(int someValue, List<int> someValues)
{
  Task generatedTask = null;

  {
    int anotherValue = 2;
    object valuesRef = someValues;
    generatedTask = new Task(delegate{
      anotherValue += someValue + GetSum(valuesRef);
      Console.WriteLine(anotherValue);
    });
  }

  generatedTask.Start();
}
Run Code Online (Sandbox Code Playgroud)

但是,我不知道到底发生了什么......

也许一切都被"复制"给代表.或者,与引用类型一样,所有值类型都将具有与Task委托关联的副本,直到它存在为止?

我只是想了解最新的C#版本在性能问题上究竟发生了什么.

c#

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

如何以html格式将多个值附加到单个参数?

假设我有以下形式:

<form action="process.php">
<input type="checkbox" name="option1" value="oats"> Oats
<input type="checkbox" name="option2" value="beans"> Beans
<input type="hidden" name="parameter" value="a"/>
<input type="submit" value="Submit"/>
</form>
Run Code Online (Sandbox Code Playgroud)

通常会发生的是点击URL后,浏览器会重定向到:

process.php?option1=oats&option2=beans&parameter=a
Run Code Online (Sandbox Code Playgroud)

如何使其在单击提交时所有复选框最终作为"参数"的一部分,但用逗号分隔?换句话说,它将是:

process.php?parameter=a,oats,beans
Run Code Online (Sandbox Code Playgroud)

如果没有HTML解决方案,最好的解决方案与最小的javascript/jquery/html是最好的.

html php jquery

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

Phalcon的命名空间

我的所有控制器都在命名空间下,MyApp\Controllers因此,正如文档推荐的那样,我已将默认命名空间设置为:

$dispatcher->setDefaultNamespace('MyApp\Controllers');
Run Code Online (Sandbox Code Playgroud)

但是现在我不仅需要在文件夹中组织我的控制器,还要命名它们并拥有友好的URL,如:/features/featureX//wizards/featureX/.因此,从这个例子我得到了MyApp\Controllers\Features\FeaturesXMyApp\Controllers\Wizards\FeaturesX.

我相信他们不应该被视为模块吗?它们只是一些自定义路由,但是从路由文档中我无法告诉如何:

  • 声明仅定义命名空间的路由(例如$router->add("/:namespace", ["namespace" => 1]);)
  • 使上述路由策略仅用于某些控制器.例如,LoginController应保留在MyApp\Controllers命名空间中.

也许我可以通过为每个使用一个路由器或调度程序来实现这一点.任何经验丰富的Phalcon开发人员都可以在这里给我一个亮点?!

phalcon

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

使用Assert时C#抛出异常?

我有一个系统,其中employeeId必须总是存在,除非存在一些潜在的问题.

我看到的方式是,我有两个选择来检查这段代码:

1:

public void GetEmployee(Employee employee)  
{  
   bool exists = EmployeeRepository.VerifyIdExists(Employee.Id);  
   if (!exists)   
   {   
     throw new Exception("Id does not exist");  
   }  
}    
Run Code Online (Sandbox Code Playgroud)

或2:

public void GetEmployee(Employee employee)  
{  
  EmployeeRepository.AssertIfNotFound(Employee.Id);  
}  
Run Code Online (Sandbox Code Playgroud)

选项#2在C#语言中是否可以接受?

我喜欢它,因为它很整洁,因为我不喜欢在类范围内查看"抛出新异常("bla bla bla")类型的消息.

c# exception-handling

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

Type.GetProperties什么都不返回

请考虑以下代码:

public class MyClass
{
    public MyClass(Type optionsClassType)
    {
      //A PropertyInfo[0] is returned here
      var test1 = optionsClassType.GetProperties();
      //Even using typeof
      var test2 = typeof(MyClassOptions).GetProperties();
     //Or BindingFlags
      var test3 = typeof(MyClassOptions)
          .GetProperties(BindingFlags.DeclaredOnly | BindingFlags.Public);
    }
}

public class MyClassOptions
{
    public int MyProperty { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我无法获得PropertyInfo[]MyClassOptions,Type.GetProperties总是返回一个空数组.首先我认为这是Xamarin.iOS中的一个框架错误,但是我在另一个针对相同框架的项目中测试了相同的代码并且它工作得很好.

有人知道可能的原因吗?

编辑

感谢@Fabian Bigler回答我得到了它.在我的项目中,即使Linker设置为适度的行为,实例化MyClassOptions也不足以在运行时保持类定义.只有在实际使用实例后(例如设置属性),类才会保留在我的构建中.

似乎链接器用假人替换"未使用"的东西.由于我将在这个项目中大量使用反射,我刚刚禁用了链接器,一切都恢复正常.

c# reflection linker xamarin.ios

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

使用Ansit从Gitlab CI部署,处理密码

我正在尝试使用Gitlab CI和Ansible实现"无密码"部署工作流程.有些步骤需要密码(我已经尽可能使用SSH密钥)所以我将这些密码存储在Ansible Vault中.接下来,我只需要在运行playbook时提供Vault密码.

但是我怎么能很好地与Gitlab CI集成呢?

我可以注册一个gitlab-ci工作(或者工作只适用于构建吗?),它只是以某种方式运行提供保险库密码的剧本?!如果没有密码以纯文本形式存在,这可以实现吗?!

另外,如果有人可以向我指出一些显示我们如何使用Ansible部署构建的材料,我会非常高兴.你可以注意到,我确实没有发现任何相关信息.

ansible gitlab-ci

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