超出了JavaScriptSerializer.MaxJsonLength处理此问题的最佳做法是什么?

问题描述

设置从客户端脚本调用的Web方法的最大长度的唯一方法是通过web.config文件(如下)。设置这个有什么问题?我会每次通过多个xhr调用来执行此操作以流传输部分数据。

<system.web.extensions>
  <scripting>
      <webServices>
        <jsonSerialization maxJsonLength="500000">
        </jsonSerialization>
      </webServices>
  </scripting>
</system.web.extensions>

更新:默认大小为2097152,相当于4 MB的Unicode字符串数据。您是否真的要将那么多数据发送回客户端?如果这样,您很有可能需要查看应用程序设计,因为用户体验会很慢而且很麻烦。

解决方法

我使用jQuery的$ .ajax()函数将大量数据发送给客户端。我正在ASP.NET
Web服务中调用一个返回JSON数据的方法。对于大多数搜索而言,一切都很好,但是当我要返回大量数据集时,我遇到了JavaScriptSerializer
MaxJsonLength属性问题。处理此问题的最佳做法是什么?我不想随意设置最大长度。如果返回的数据大于当前的最大值,是否可以在Web服务中设置MaxJsonLength,还是应该重写数据并将其发送给客户端?

这是Web服务的相关代码段:

Dictionary<string,object> jsonValuePairs = new Dictionary<string,object>();
//add some data to the dictionary...
return System.Web.Script.Serialization.JavaScriptSerializer.Serialize(jsonValuePairs);

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...