小编Bra*_*yer的帖子

以滚动方式从MySQL中删除旧行的最佳方法是什么?

我发现自己想要在很多应用程序中滚动删除早于(x)-days的行.在高流量桌上最有效地做到这一点的最佳方法是什么?

例如,如果我有一个存储通知的表,我只想保留7天.或高分我只想保持31天.

现在我保留一行存储发布的纪元时间,并运行一个每小时运行一次的cron作业,并以如下增量删除它们:

DELETE FROM my_table WHERE time_stored < 1234567890 LIMIT 100
Run Code Online (Sandbox Code Playgroud)

我这样做直到mysql_affected_rows返回0.

我曾经一次做到这一切,但这导致应用程序中的所有内容在INSERTS堆积的情况下挂起30秒左右.添加LIMIT有助于缓解这一点,但我想知道是否有更好的方法来做到这一点.

mysql

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

通过将a.localeCompare(b)切换为(a <b?-1:(a> b?1:0))进行400x排序加速

通过切换javascript排序函数

myArray.sort(function (a, b) {
  return a.name.localeCompare(b.name);
});
Run Code Online (Sandbox Code Playgroud)

myArray.sort(function (a, b) {
  return (a.name < b.name ? -1 : (a.name > b.name ? 1 : 0));
});
Run Code Online (Sandbox Code Playgroud)

我能够缩短在Chrome中对~1700元素阵列进行排序的时间,从1993毫秒到5毫秒.几乎是400倍的加速.不幸的是,这是以正确排序非英语字符串为代价的.

当我尝试进行排序时,显然我无法阻止我的UI阻塞2秒.有什么我可以做的,以避免可怕的缓慢localeCompare但仍然保持对本地化字符串的支持?

javascript sorting google-chrome

36
推荐指数
3
解决办法
2万
查看次数

使用Capistrano 3设置默认阶段

有没有办法在Capistrano 3中设置默认阶段?

我已经尝试放入set :stage, :productiondeploy.rb,但这不起作用,它给出了错误:

Stage not set, please call something such as `cap production deploy`,
where production is a stage you have defined
Run Code Online (Sandbox Code Playgroud)

我现在只有一个阶段所以我希望能够运行cap deploy并让它在默认情况下执行.

ruby capistrano ruby-on-rails

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

确定Range是否包含值

我试图找出一种方法来确定一个值是否落入RangeSwift中.

基本上我正在尝试做的是调整其中一个switch语句示例来执行以下操作:

let point = (1, -1)
switch point {
case let (x, y) where (0..5).contains(x):
    println("(\(x), \(y)) has an x val between 0 and 5.")
default:
    println("This point has an x val outside 0 and 5.")
}
Run Code Online (Sandbox Code Playgroud)

据我所知,没有任何内置的方法来做我.contains上面想象的方法.

所以我试着扩展Range课程.我最终遇到了泛型问题.我无法延伸Range<Int>所以我不得不尝试扩展Range自己.

我得到的最接近的是这个,但它不起作用,因为>=<=没有定义ForwardIndex

extension Range {
    func contains(val:ForwardIndex) -> Bool {
        return val >= self.startIndex && val <= self.endIndex
    }
}
Run Code Online (Sandbox Code Playgroud)

我该如何添加.contains方法Range?或者有更好的方法来确定一个值是否在一个范围内?

Edit2:这似乎可以扩展 …

range swift

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

HTML5 localStorage键可以是任何字符串吗?

我正在开发一个使用HTML5 localStorage的应用程序.除了它必须是一个字符串之外,我无法找到关键是否有任何限制.

具体来说,我想知道我是否可以在支持localStorage的所有浏览器中使用URL作为localStorage中的键(例如,:/?#._-=+@!$%^&*()[]{}|<>允许在键中使用的符号?).

还有:空白怎么样?是否允许跨浏览器的localStorage密钥?

我找到了这个主题,但它似乎只测试了localStorage值(而不是键)中可接受的字符串.

javascript html5 cross-browser local-storage

21
推荐指数
1
解决办法
3198
查看次数

Capistrano 3拉命令行参数

我正在从Capistrano 2升级到Capistrano 3.在Cap 2中我使用以下命令行参数作为分支名称(否则默认为master)

set :branch, fetch(:branch, "master")
Run Code Online (Sandbox Code Playgroud)

如果我打电话cap deploy,它将部署主分支.但它也让我这样做:

cap deploy -S branch=foo
Run Code Online (Sandbox Code Playgroud)

哪个部署foo分支.

现在,在Capistrano 3中,如果我尝试运行上面的操作,我会收到一个错误:invalid option: -S.

现在通过命令行传递参数的正确方法是什么?

git rake capistrano ruby-on-rails

14
推荐指数
2
解决办法
8537
查看次数

为什么缓慢的jQuery动画起伏不定?

我在搜索这个问题时遇到了困难,因为我能找到的大部分内容都是关于动画应该很快但行动缓慢的动画.我的问题是关于一个我希望持续时间很长但仍然流畅的动画.

我已经创建了这个jsfiddle来演示这个问题:http://jsfiddle.net/93Bqx/

我试图让一个元素随着时间的推移慢慢移动到另一个位置.但动画非常不稳定.

基本上,它归结为这样的事情:

$elem.animate({
        left: x,
        top: y
}, someLargeNumber);
Run Code Online (Sandbox Code Playgroud)

我想知道问题是动画是否太慢以至于每一步都小于一个像素,所以它将它们四舍五入为0或1使它看起来像是丢帧然后一次全部移动.但我不知道如何检查或解决这个问题.

有没有更好的方法来做慢动画,所以他们是顺利的?我有一个类似的用CSS3创建并且翻译(x,y)很顺利,但遗憾的是我需要比我认为可以用CSS获得更多的灵活性.

javascript css jquery css-animations jquery-animate

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

第三级报价在HTML和JavaScript中转义

我将在序言中写道:"我知道这是不好的做法和丑陋的黑客(我很抱歉)但......"

我正在使用jQuery TOOL的工具提示小部件在用户将鼠标悬停在html元素上时显示工具提示.使用此小部件,您可以将工具提示的html添加到元素的title属性中.

在那个html中我有一个元素,我想绑定一个内联onclick事件处理程序.

不幸的是,我遇到了太多的引号层,无法将参数传递给我试图调用的函数.

我有这样的事情:

<div title="<div onclick='myFunction(_____)'>My tooltip content</div>">My element</div>
Run Code Online (Sandbox Code Playgroud)

如果我需要传递一个整数,myFunction这是有效的,因为它不需要另一组引号.不幸的是我想传递一个字符串myFunction.如何进一步转义此字符串参数,以便它不会关闭onclicktitle字符串?

html javascript jquery jquery-tools

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

在Facebook Mobile News Feed中自动播放开放式图形协议视频

有没有人能够弄清楚开放的图形标签,以便像Facebook本地上传的视频一样自动播放视频呢?

我已经能够使用og:video标签在共享预览/网址调试器中成功将视频链接到我的网址,但它不能在移动设备上自动播放,就像我直接将其作为共享视频上传一样.

这些是我现在拥有的开放图形标签:

<meta property="fb:app_id"             content="_______" />
<meta property="og:type"               content="article" />
<meta property="article:publisher"     content="https://www.facebook.com/______" />
<meta property="og:site_name"          content="_______" />
<meta property="og:url"                content="https://_______.com/_______/_______" />
<meta property="og:title"              content="_______" />
<meta property="og:description"        content="_______" />

<meta property="og:image"              content="https://_______.com/images/opengraph.png" />
<meta property="og:video"              content="http://_______.com/videos/_______.mp4" />
<meta property="og:video:secure_url"   content="https://_______.com/videos/_______.mp4" />
<meta property="og:video:type"         content="video/mp4" />
<meta property="og:video:width"        content="480" />
<meta property="og:video:height"       content="320" />
Run Code Online (Sandbox Code Playgroud)

我在Facebook上分享时,我的视频就像这样显示:

视频通过OGP共享

我希望他们能够像这样出现(注意:当我滚动浏览我的新闻Feed时,这是自动播放,当您直接通过Facebook上传视频时):

视频在Facebook上分享

video opengraph facebook-graph-api open-graph-protocol facebook-opengraph

9
推荐指数
0
解决办法
732
查看次数

什么是_.pluck的等效对象

我已经重新实现了我自己需要的版本,但我怀疑它已经包含在下划线中,因为它非常简单并且与许多其他函数密切相关.但我想不出应该叫什么.

基本上,我想要的是_.pluck的一个版本,它使用对象并返回一个对象而不是一个数组(及其相关的键).

所以,例如,如果我有一个像这样的对象:

elements: {
    steam: {
        temperature: 100,
        color: 'orange',
        state: 'gas'
    },
    water: {
        temperature: 50,
        color: 'blue',
        state: 'liquid'
    },
    ice: {
        temperature: 0,
        color: 'white',
        state: 'solid'
    }
}
Run Code Online (Sandbox Code Playgroud)

我想打个电话 _.something(elements, 'temperature')

让它回归

{
    steam: 100,
    water: 50,
    ice: 0
}
Run Code Online (Sandbox Code Playgroud)

而不是_.pluck(elements, 'temperature')返回

[100, 50, 0]
Run Code Online (Sandbox Code Playgroud)

这个转变叫做什么,它是否已经包含在下划线中?我自己用jQuery的每个循环编写了一个快速版本,因为我比jQuery更熟悉jQuery而不是下划线(如下所示),但如果可能的话,我更喜欢使用库中的一个.

$.objPluck = function(obj, key) {
    var ret = {};
    $.each(obj, function(k, value) {
        ret[k] = value[key];
    });
    return ret;
}
Run Code Online (Sandbox Code Playgroud)

javascript transformation object underscore.js

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