我试图通过Datastore JS API向Dropbox发布大量记录(2000-ish)。我得到了一个错误:
POST https://api12.dropbox.com/1/datastores/put_delta 400 (Bad Request)
...and it参考资料:api12.dropbox.com/1/datastores/put_delta:1
调试时使用的信息不多,但我猜这是因为我已经超过了大小限制。
我有什么想法可以解决这个问题,或者至少可以进一步调试它?
更新
我使用Chrome中的XHR检查器来获得以下响应:
{"error":
{
"size_limit": "Error: put_delta of delta (size 4138335) exceeds size limit 2097152 bytes",
"object_type": "delta",
"limit": 2097152,
"size": 4138335
}
}
发布于 2014-12-03 23:56:40
在JS中,每次代码生成控制返回浏览器时,都会有一个隐式“同步”。因此,如果您编写一个输入大量数据的for循环,那么所有这些都会进入一个增量。你可以用小块的文字来分解事情。例如,类似这样的内容(未经测试,如果出现了错误或类似的情况,很抱歉):
var LIMIT = 100; // how many things to write in a single delta
function writeThings(arrayOfThings) {
// write up to LIMIT things
for (var i = 0; i < arrayOfThings.length && i < LIMIT; i++) {
writeSingleThing(arrayOfThings[i]);
}
if (i < arrayOfThings.length) {
// more to write
window.setTimeout(function () {
// after a tick, continue from where we left off
writeThings(arrayOfThings.slice(i));
}, 1);
} else {
// done writing
}
}
https://stackoverflow.com/questions/27261573
复制相似问题