当前位置: 首页 > 面试题库 >

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

羊舌洛华
2023-03-14
问题内容

我使用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字符串数据。您是否真的要将那么多数据发送回客户端?如果这样,您很有可能需要查看应用程序设计,因为用户体验会很慢而且很麻烦。



 类似资料:
  • 问题内容: 我有一个方法可以执行一些超时任务。我使用ExecutorServer.submit()获取Future对象,然后使用超时调用future.get()。这工作正常,但是我的问题是处理可能由我的任务引发的检查异常的最佳方法。以下代码可以正常工作,并保留检查的异常,但是如果方法签名中的检查的异常列表发生更改,则显得非常笨拙且容易中断。 对于如何解决这个问题,有任何的建议吗?我需要以Java

  • 问题内容: 我一直在学习PHP的语法并进行实践。我来自.NET背景,因此对于页眉和页脚,母版页始终使我很轻松。 到目前为止,我有一个mainHeader.php和mainFooter.php,其中包含我的头菜单和我的页脚html。我创建了一个mainBody.php,在顶部放了 对于页脚,我把 这样做非常好,让我微笑,因为我的页面都很好地融合在一起。mainHeader有我的,而mainFoote

  • 问题内容: 按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 我过去曾经做过Java和JSP编程,但是我是Java Server Faces的新手,并且想知道JSF开发是否有一套最佳实践。 问题答案: 一些提示:了解JS

  • 问题内容: 我们正在使用构建大型Web应用程序。在不同情况下,我们经常使用自定义指令。当涉及到DOM操作,绑定事件等…发生时,我们在自定义指令的函数中定义了操作DOM的函数,但是我们从控制器调用了它(我们在因此它可以被给定的控制器访问)。我认为这样做的角度方法是为每个函数定义一个单独的自定义指令,并直接从模板中使用它,但是在我们的情况下,我不知道这样做会很方便很多自定义指令,所以BAD要做我们正在

  • 问题内容: 在设计表时,我养成了一种习惯,即有一列是唯一的,并且我将其作为主键。这可以通过三种方式来实现,具体取决于需求: 自动递增的标识整数列。 唯一标识符(GUID) 可以用作行标识符列的短字符(x)或整数(或其他相对较小的数字类型)列 数字3将用于较小的查找,大多数是读取的表,这些表可能具有唯一的静态长度字符串代码或数字值,例如年份或其他数字。 在大多数情况下,所有其他表将具有自动递增的整数

  • 问题内容: 我有这张桌子(500,000行) 我正在考虑通过(在所有网站中显示仅1个月的记录)进行每个查询 同时,我想在where子句中添加 像这样的事情: 该查询现在还可以并且没有索引就可以快速进行,但是在尝试使用它时却变得太慢了,所以我使用了该索引 它的工作和变得很快,现在我想喜欢这个 这是 该查询速度太慢的原因,因为 然后我试图删除旧索引并添加此 它也太慢了 如果我仅使用单一索引怎么办?在c