MaxJsonLength是否可以安全地始终设置为最大值?

时间:2013-05-29 06:53:37

标签: c# json model-view-controller asp.net-ajax

我有一个控制器返回json,在我的视图中填充网格。根据过滤器的不同,用户可以在一次调用中检索大量数据,因此我将MaxJsonLength设置为 max

var jsonResult = Json(result, JsonRequestBehavior.AllowGet);
jsonResult.MaxJsonLength = int.MaxValue;

我的问题是,始终将MaxJsonLength设置为最大值是否安全?什么是它的缺点?(如果有的话)

我找到了这个相关的帖子,但它没有回答我的问题。

What is MaxJSONlength good for?

我需要你的专业知识。提前谢谢!

1 个答案:

答案 0 :(得分:2)

我不认为在每次通话时将其设置为MaxValue是个好主意。这并不意味着它会破坏您的应用程序,但它可能会使您的应用程序显得破碎 我曾经遇到过同样的问题 - 在某些情况下,用户可能要求更大的数据集。像10-50兆字节大,通过互联网连接,而不是局域网。没有什么不可能的,你可以发送这样的数据集。但是你的应用程序会很慢。浏览器将等待数据,用户将在页面可用之前等待很长时间,这反过来又导致他们做愚蠢的事情,比如到处点击,诅咒和报告应用程序中的错误。真的是虫子吗?取决于您的要求,但我会说是。

你可以而且应该做的是提供分页。向用户发送小组数据,立即显示,允许用户使用它们,然后根据需要发送其他数据。或者如果总是需要它 - 在背景中自动发送它,但在较小的集合中,这将很快显示出来。用户可以快速准备好他们的页面,大部分时间他们都不会注意到并非所有数据都已存在 - 当他们需要时,它已经被下载了。
今天的AJAX支持,jQuery和类似的东西应该不会比一次获取和显示整个数据集困难。