Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Lazy.stringify_Javascript - Fatal编程技术网

Javascript Lazy.stringify

Javascript Lazy.stringify,javascript,Javascript,问题-- 用户使用库将日志发送到后端。该库有一个循环缓冲区,因此没有超过几百个元素 但是,我们不控制发送的元素的大小,因此有效负载可能大于10mb 我希望通过对有效负载的总体大小进行限制来减少这种情况 但是,我认为没有办法获得对象的大小 我想的是一种懒惰的JSON.stringify var res = "["; messages.forEach(m => { if (res.length < MAX_SIZE) { res += JSON.stringify(m);

问题--

用户使用库将日志发送到后端。该库有一个循环缓冲区,因此没有超过几百个元素

但是,我们不控制发送的元素的大小,因此有效负载可能大于10mb

我希望通过对有效负载的总体大小进行限制来减少这种情况

但是,我认为没有办法获得对象的
大小

我想的是一种懒惰的JSON.stringify

var res = "[";
messages.forEach(m => {
  if (res.length < MAX_SIZE) {
    res += JSON.stringify(m);
    res += ",";
  })
});
res += "]"
var res=“[”;
messages.forEach(m=>{
if(分辨率长度<最大尺寸){
res+=JSON.stringify(m);
res+=“,”;
})
});
res+=“]”

有更好的方法吗?

如果(JSON.stringify(obj.length>arbirylimit)抛出新的错误(“太大的有效负载”),则不会执行
if足够简单吗?您不需要截断JSON,是吗?如果你这样做了,你有多在乎效率?你可以使用some/each而不是forEach提前停止,而不是继续迭代并每次都失败。