我使用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);
设置从客户端脚本调用的Web方法的最大长度的唯一方法是通过web.config文件(如下)。设置这个有什么问题?我会每次通过多个xhr调用来执行此操作以流传输部分数据。
<system.web.extensions> <scripting> <webServices> <jsonSerialization maxJsonLength="500000"> </jsonSerialization> </webServices> </scripting> </system.web.extensions>
更新:默认大小为2097152,相当于4 MB的Unicode字符串数据。您是否真的要将那么多数据发送回客户端?如果这样,您很有可能需要查看应用程序设计,因为用户体验会很慢而且很麻烦。