超出了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);

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...