相关疑难解决方法(0)

我可以在web.config中为maxJsonLength设置无限长度吗?

我正在使用jQuery的自动完成功能.当我尝试检索超过17000条记录的列表(每条记录的长度不超过10条)时,它超出了长度并抛出错误:

异常信息:
异常类型:InvalidOperationException
异常消息:使用JSON JavaScriptSerializer进行序列化或反序列化时出错.字符串的长度超过maxJsonLength属性上设置的值.

我可以设置无限长度maxJsonLengthweb.config?如果没有,我可以设置的最大长度是多少?

asp.net asp.net-mvc json

648
推荐指数
18
解决办法
54万
查看次数

我是否达到了浏览器可以处理的JavaScript对象大小的限制?

<script>在我的HTML中嵌入了一个大型数组,就像这样(没什么好惊讶的):

<script>
    var largeArray = [/* lots of stuff in here */];
</script>
Run Code Online (Sandbox Code Playgroud)

在此特定示例中,阵列具有210,000个元素.这远远低于理论最大值2 31 - 4个数量级.这是有趣的部分:如果我将数组的JS源保存到文件中,那么该文件大于44兆字节(确切地说是46,573,399字节).

如果您想亲眼看看,可以从GitHub下载.(那里的所有数据都是罐装的,所以很多都是重复的.生产中不会这样.)

现在,我真的不担心提供那么多数据.我的服务器gzips它的响应,所以它真的不需要花费很长时间才能通过网络获取数据.但是,一旦加载,页面就会出现令人讨厌的趋势,导致浏览器崩溃.我在IE中根本没有测试(这是一个内部工具).我的主要目标是Chrome 8和Firefox 3.6.

在Firefox中,我可以在控制台中看到一个相当有用的错误:

Error: script stack space quota is exhausted

在Chrome中,我只是得到了悲伤标签页:

在此输入图像描述

已经切入了追逐

  • 对于我们现代的"高性能"浏览器来说,这真的太多了吗?
  • 有什么我可以做*优雅地处理这么多的数据?

顺便说一句,我能够在Chrome中启用此功能(阅读:不会崩溃选项卡).我真的认为Chrome至少是由更强硬的东西制成的,但显然我错了......


编辑1

@Crayon:我不想证明我为什么要立即将这么多数据转储到浏览器中.简短版本:要么解决这个问题(当然不是那么容易),要么我必须解决一大堆其他问题.我现在选择更简单的方法.

@various:现在,我并不是特别想找到减少数组中元素数量的方法.我知道我可以实现Ajax分页或者你有什么,但是在其他方面它会为我引入一系列问题.

@Phrogz:每个元素看起来像这样:

{dateTime:new Date(1296176400000),
 terminalId:'terminal999',
 'General___BuildVersion':'10.05a_V110119_Beta',
 'SSM___ExtId':26680,
 'MD_CDMA_NETLOADER_NO_BCAST___Valid':'false',
 'MD_CDMA_NETLOADER_NO_BCAST___PngAttempt':0}
Run Code Online (Sandbox Code Playgroud)

@Will:但是我的计算机配备了4核处理器,6 GB RAM,超过半TB的磁盘空间......我甚至都没有要求浏览器快速完成这项工作 - 我只想问因为它可以工作!


编辑2

任务完成!

通过JuanGuffa的现场建议,我能够让这个工作!似乎问题只是解析源代码,而不是在内存中实际使用它.

总结胡安答案的评论泥潭:我不得不将我的大阵列分成一系列较小的阵列,然后是Array#concat()它们,但这还不够.我还 …

javascript memory arrays

63
推荐指数
4
解决办法
3万
查看次数

Javascript/Node.js引擎如何在内存中存储JSON?

我有一个70 MB的JSON文件,我从Node.js脚本中读取并分配给一个变量.

console.log(process.memoryUsage());
let data=require('../newJSON.json');
console.log(process.memoryUsage());
Run Code Online (Sandbox Code Playgroud)

输出:

{ rss: 28184576,
  heapTotal: 6283264,
  heapUsed: 4199672,
  external: 8252 }
{ rss: 724721664,
  heapTotal: 695595008,
  heapUsed: 663708016,
  external: 8252 }
Run Code Online (Sandbox Code Playgroud)

似乎70 MB JSON需要632 MB的内存.我有兴趣了解Node Js/Javascript如何将JSON存储到内存中?

javascript json memory-management v8 node.js

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

如何处理大小超过2 MB的帖子数据

我有json发布数据与下面的模板

 {

    "themeId" : JSONString,
    "themeName" : JSONString,
    "tables" : [{
        "tableName" : JSONString,
        "records" : [{
            "recordVersion" : JSONString,
            "tableItems" : [] 
        }]
    }]

}
Run Code Online (Sandbox Code Playgroud)

在Java方面,我有这样的REST API:

@POST
@Path("/{themeId}")
@Consumes({MediaType.APPLICATION_JSON})
public Response postTheme( @PathParam("themeId") String themeId, ThemeDictionary dictionary) throws InterruptedException {
    //code to handle
}
Run Code Online (Sandbox Code Playgroud)

当发布数据小于2 MB但如何处理大于2 MB的数据大小时,它工作正常.

问题

1)我应该加入分页.

2)如果我把json分成两半,那么每一半都不是有效的json.那么,我应该接受字符串并在服务器端连接吗?

3)是否有任何好的例子来处理这种情况

4)寻找可以处理大小小于或大于2 MB的json数据的方法

java websphere json jersey java-ee

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

JSON限制?

我想知道带有AJAX的JSON是否对传出和返回参数可以携带的数据量有限制?

我希望能够从服务器发送一个包含10,000行的文件作为字符串.我该如何完成这项任务?单个参数是否能够提供此功能?

编辑:我的客户端是JavaScript和我的服务器PHP.

谢谢.

javascript php ajax json

7
推荐指数
2
解决办法
3308
查看次数

如何在服务器发布操作结果后打开一个新选项卡

这是情况。

我有一个保存和一个打印按钮:

<input name="btnSubmit" type="submit" value="Save" /> 
<input name="btnSubmit" type="submit" value="Print"/> @*Redirect to Action("Print", "controler")*@
Run Code Online (Sandbox Code Playgroud)

但是打印按钮必须打开一个新标签。如果只是我,我显然知道我必须在打印前保存……这不是问题。我可以将此链接与目标空白一起使用:

<a target="_blank" href="@Url.Action("Print", "controler", new { id = Model.id })" type="submit" value="Print" > Print</a>
Run Code Online (Sandbox Code Playgroud)

很简单,但现在有些用户认为打印按钮也应该保存页面。因为他们不推送保存......他们只是打印并且模型更改丢失了,因为我无法在我的打印链接中调用发布操作......这是一个链接。

起初,我想我可以对保存函数进行异步调用,但是我的模型太大了,它需要回传它自己的动作(对吗?)

经历了这个:

如何在 response.redirect 上使用 Target=_blank?

而且我不确定它是否真的对 MVC 有帮助……现在我被困在这里:

[HttpPost]
public ActionResult MyForm(string btnSubmit, formModel model)
{
    if (btnSubmit == "Print")
    {
        dbSave(model);
        return RedirectToAction("Print", "controler"); // Won't open new tab... 
    }
}
Run Code Online (Sandbox Code Playgroud)

asp.net asp.net-mvc tabs response.redirect

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

PHP/JSON:收到$ _POST数组不完整

使用$ .post(JQuery)作为JSON数组发布大约100行数据.但由于某些原因,并非所有行都被接收.

数据看起来或多或少像这样(内容基本上是数字和小字符串):

rows = [["U", "0", "81949", 32 more...], ["U", "0", "81950", 32 more...] ..... ]
Run Code Online (Sandbox Code Playgroud)

我发送数据的方式是:

$.post(url+"callback=?", { data : rows }, function(){}, "json");
Run Code Online (Sandbox Code Playgroud)

如果我回显在本地版本中收到的行数(count($ _ POST)),则显示"100",但在生产服务器上显示"25"(每次都是相同的数量).

检查firebug中的请求详细信息,它正确显示已发送所有100个.

我虽然它可能是PHP"post_max_size"值,但我把它设置为"100M",我认为这已经足够了.

我很确定它必须与服务器设置,但我没有想法...提前谢谢.

更新:

  • 生产服务器有8GB的内存,大约占用了一半(这不是内存问题).
  • 没有超时(所有过程都在大约3秒内完成).

php arrays jquery post json

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