【发布时间】:2011-02-03 11:51:53
【问题描述】:
我想知道带有AJAX的JSON是否对传出和返回参数可以携带的数据量有限制?
我希望能够从服务器发送和返回一个包含 10,000 行的文件作为字符串。我应该如何完成这项任务?单个参数可以处理这个吗?
编辑: 我的客户端是 JavaScript,我的服务器是 PHP。
谢谢。
【问题讨论】:
标签: php javascript ajax json
我想知道带有AJAX的JSON是否对传出和返回参数可以携带的数据量有限制?
我希望能够从服务器发送和返回一个包含 10,000 行的文件作为字符串。我应该如何完成这项任务?单个参数可以处理这个吗?
编辑: 我的客户端是 JavaScript,我的服务器是 PHP。
谢谢。
【问题讨论】:
标签: php javascript ajax json
JSON 本身并没有限制它可以传输的数据量,也没有限制它的递归深度。这取决于您的应用服务器。
如果您将 JSONSerialization 与 C# 一起使用,则数据量的限制设置得非常低。您可以通过将以下代码 sn-p 放入您的 Web.config 来覆盖它。
<system.web.extensions>
<scripting>
<webServices>
<jsonSerialization maxJsonLength="2147483644"></jsonSerialization>
</webServices>
</scripting>
</system.web.extensions>
如果可以避免的话,您可能不想通过 AJAX 发送大约 10 000 行(将其分解为较小的请求或使用分页)。
【讨论】:
JSON 类似于 XML 等其他数据格式 - 如果您需要传输更多数据,您只需发送更多数据。整个 JSON 请求本身没有固有的大小限制。任何限制都将由解析 JSON 请求的服务器设置。 (例如,ASP.NET 具有序列化程序的“MaxJsonLength”属性。)
【讨论】:
HTTP POST 请求没有(合理的)大小限制。
但是,如果您发布超过 100MB 的数据,它就不太可能可靠地工作。
【讨论】:
您应该将字符串分解为位并执行多个 ajax 请求,直到字符串完成。继续将字符串位临时附加到文件中,然后在请求完成后将文件内容放入数据库中。
【讨论】:
我认为 Json 最大的弱点是语义。
否则,如果您使用 HttpPost,则没有任何限制。当然,为了更好的用户体验,请保持简单和少。
更多:http://blogs.oracle.com/bblfish/entry/the_limitations_of_json
【讨论】: