小编Kan*_*ali的帖子

优化的批量(块)上传对象到IndexedDB

我想在一个事务中将对象添加到IndexedDB中的某个表中:

_that.bulkSet = function(data, key) {
    var transaction = _db.transaction([_tblName], "readwrite"),
        store = transaction.objectStore(_tblName),
        ii = 0;

    _bulkKWVals.push(data);
    _bulkKWKeys.push(key);

    if (_bulkKWVals.length == 3000) {
        insertNext();
    }

    function insertNext() {
        if (ii < _bulkKWVals.length) {
            store.add(_bulkKWVals[ii], _bulkKWKeys[ii]).onsuccess = insertNext;
            ++ii;
        } else {
            console.log(_bulkKWVals.length);
        }
    }
};
Run Code Online (Sandbox Code Playgroud)

看起来它工作正常,但它不是非常优化的方式,特别是如果对象的数量非常高(~50.000-500.000).我怎么可能优化它?理想情况下,我想先添加3000,然后从数组中删除它,然后添加另一个3000,即以块为单位.有任何想法吗?

javascript indexeddb

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

在JavaScript中使用Loop的setTimeout

我有一个非常微不足道的问题.对于带有setTimeout的简单循环,如下所示:

for (var count = 0; count < 3; count++) {
    setTimeout(function() {
        alert("Count = " + count);
    }, 1000 * count);
}
Run Code Online (Sandbox Code Playgroud)

console提供如下输出:

Count = 3
Count = 3
Count = 3
Run Code Online (Sandbox Code Playgroud)

不知道为什么输出像这样.有人可以解释一下吗?

javascript

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

迭代一组对象

我想迭代一个对象数组,以获得最老的人和最年轻的人.我怎么能得到那个?它看起来像一个简单的任务,但我无法通过简单的每个循环来获得年龄.有任何想法吗?

var p = [
    { name : "Billy", age : 5 },
    { name : "Lucy", age : 31 },
    { name : "Jonny", age : 11 },
    { name : "Wolfgang", age : 78 },
    { name : "Robert", age : 23 }
];
Run Code Online (Sandbox Code Playgroud)

我已经看到了这个,但它没有帮助我理解这个问题.

javascript arrays object

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

获取URI的路径部分

我怎样才能匹配/sk/en,并/fg/tr从这些网址吗?

http://example.com/sk/en
http://example.com/fg/tr
Run Code Online (Sandbox Code Playgroud)

网址可以以http://,https://www.,但不必以.在第一个和第二个斜杠之后总是有两个字母,字母是字母的,无论如何都可以调用.

javascript regex

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

更新对象数组而不会发生突变

如果我有一个对象:

[
   {
       "value":"d1",
       "label":"bathstore.com",
       "selected":true
   },                             
   {
       "value":"d2",
       "label":"superdrug.com",
       "selected":true
   },
   {
       "value":"d3",
       "label":"papajohns.com",
       "selected":true
   }
]
Run Code Online (Sandbox Code Playgroud)

如何使用扩展运算符或Object.assign()将“选定”字段的每个值更改为“假”,以避免对象突变?

javascript ecmascript-6

-3
推荐指数
1
解决办法
1924
查看次数

标签 统计

javascript ×5

arrays ×1

ecmascript-6 ×1

indexeddb ×1

object ×1

regex ×1