小编car*_*rla的帖子

使用 IndexedDB 过滤和排序

我正在寻找一些关于如何使用不同的键过滤并同时从 IndexedDB 中获取排序结果的建议。

条件是:

  1. IndexedDB中有2个key,一个用于过滤,一个用于排序
  2. 查询时,过滤键值是已知的,但不知道界定排序键可能值的值
  3. 排序键值可能包含随机数字和字母

我的解决方案包括两件事:

  • 具有两个键的复合索引:过滤键和排序键。在我的示例中,我按名称过滤并按id排序:

    objectStore.createIndex('nameId', ['name','id'], { unique: true });

  • 在查询中,我使用带有下限和上限的索引。由于附加了“0”,这不是一个优雅的解决方案:

    objectStore.index('nameId').openCursor(window.IDBKeyRange.bound(['John'], ['John' + '0'], true, false));

这按预期工作,在我的示例中返回:

 1. {"name":"John","id":13}
 2. {"name":"John","id":75}
 3. {"name":"John","id":77}
 4. {"name":"John","id":78}
 5. {"name":"John","id":88}
 6. {"name":"John","id":98}
 7. {"name":"John","id":99}
Run Code Online (Sandbox Code Playgroud)

是否有更优雅的解决方案来实现相同的结果?

完整示例:

http://codepen.io/ncortines/pen/pjvgJB?editors=001

 1. {"name":"John","id":13}
 2. {"name":"John","id":75}
 3. {"name":"John","id":77}
 4. {"name":"John","id":78}
 5. {"name":"John","id":88}
 6. {"name":"John","id":98}
 7. {"name":"John","id":99}
Run Code Online (Sandbox Code Playgroud)

javascript indexeddb

6
推荐指数
0
解决办法
4358
查看次数

如何防止或恢复工作线程上的堆栈溢出?

我遇到过一种情况,根据minidump,某些文件在递归下降解析器中导致堆栈溢出.不幸的是我不能让我的手,这是否为了重现该问题(客户有保密性问题),这让我有点砍断诊断上真正的问题一时还文件的例子.

很明显,解析器需要一些关注,但现在我的首要任务是保持程序运行.作为权宜之计,我该怎样做才能阻止整个计划的落实?

我的第一选择是找到某种方法来预测我在堆栈上的空间不足以便我可以在溢出发生之前优雅地中止解析器.无法解析文件是可以接受的选项.第二种选择是让它发生,捕获错误并记录它,然后继续其余的数据.

解析发生在Parallel.ForEach()循环中.如果有帮助,我愿意将其换成其他方法.

编辑: 如果我能够获得当前线程堆栈的大小以及堆栈指针的位置,那么真正的杀手是什么.这可能吗?

编辑2: 我终于设法从某人那里取出一个样本文件并将错误记录在调试器中.事实证明,它根本不属于我们的代码 - HtmlAgilityPack中的某个地方发生了异常.所以看起来我将不得不尝试找到一个完全不同的方法.

.net c# stack-overflow multithreading

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

Haproxy 无法识别新证书

我最近将我的证书更改为 LetsEncrypt 的。

我将新证书放在旧证书的位置:

cat /etc/haproxy/certs/fullchain.pem /etc/haproxy/certs/privkey.pem > /etc/haproxy/certs/mydomain.com.pem
Run Code Online (Sandbox Code Playgroud)

在我的haproxy.cfg我有:

frontend https
bind :::8443 v4v6 ssl crt /etc/haproxy/certs/mydomain.com.pem no-sslv3
Run Code Online (Sandbox Code Playgroud)

然后我运行了,但当我在浏览器中或使用SSLLabssystemctl reload haproxy访问它时,它仍然会带来旧的。

如果我使用curl -kv mydomain.com它会显示正确的证书。

haproxy ssl-certificate lets-encrypt

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

在.Net中是否有与HTML相同的XmlReader?

我过去曾使用HtmlAgilityPack来解析.Net中的HTML,但我不喜欢它只使用DOM模型的事实.

在大型文档和/或嵌套级别较高的文档上,可能会遇到堆栈溢出或内存不足异常.通常,基于DOM的解析模型比基于流的方法使用更多的内存,这通常是因为想要消费HTML的过程可能一次只需要几个元素可用.

有没有人知道.Net的一个像样的HTML解析器,它允许你以类似于XmlReader类的方式解析HTML ?即以前向流媒体方式

.net html parsing xmlreader html-agility-pack

4
推荐指数
2
解决办法
1737
查看次数

使用 strptime 获取 UTC 偏移量,以小时和分钟分隔

我有一个这样的字符串2018-04-03 02:59:59+00:00,我需要用strptime它来将它转换为日期时间。

但是,查看文档%z(UTC 偏移量)指令是+HHMM,但我需要+HH:MM. 我怎样才能做到这一点?

python datetime

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

如何在没有空格的方案中使用连接

我在Scheme中连接和空格有问题.命令的结果:

(append '(%procedure:) (list '+) '(%))**     //with spaces
Run Code Online (Sandbox Code Playgroud)

是:

%procedure: + %      //without spaces
Run Code Online (Sandbox Code Playgroud)

如何在列表之间没有空格的情况下生成相同的结果,结果将是:

%procedure:+%
Run Code Online (Sandbox Code Playgroud)

scheme concatenation append racket

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