php - 服务器端使用json返回数据,请问大小的极限是多少?
迷茫
迷茫 2017-04-18 10:54:40
0
6
1326

我们想在后端查了服务器之后,返回数据量未知的json对象(每一条就是一个笔记数据)给前端。有可能上万条。

请问这样靠一个请求返回可以吗?有没有字符长度限制?
多谢

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(6)
刘奇

肯定有的,具体到php的话,php.ini有个most post的限制的,默认最大传输8M的数据,如果转换成字符的话可能就没法计算了,毕竟中文和英文的字符计算方法是有区别的,另外就算不断扩大传输上限,传输的字符还是会超过的,所以请把上万条数据分段传输,就算没超过最大限制,传输的数据越多,相应的速度越慢

大家讲道理

HTTP response 的大小没有明确的限制.

  1. 一般服务器返回给客户端的数据, 如果服务器已知返回内容的大小, 那么可以通过 Content-Length 头来指定.

  2. 如果服务器本身也不知道具体返回给客户端的数据大小(例如流式数据), 那么可以使用 Chunked Transfer-Encoding 来标识.

不过服务器端返回大段的 JSON 可不是一个好主意, 会造成客户端解析时间过长, 用户体验不好. 最好的做法是进行数据的分页/分段, 异步方式, 边解析边请求.

迷茫

一个请求返回大量json数据,前端解析的时间也很长,如果不做异步处理可能会线程卡死,最好是分段请求

大家讲道理

可以,但要考虑两端的能力尤其是服务器端的性能,和传输的稳定性。一般而言这么做是十分不推荐的。

洪涛

不推荐,可以使用分页和ajax来加载

小葫芦

反对前面几位混淆了请求跟响应的。
下载是没有大小限制的,好像你通过http请求下载一个文件时,是不会说文件大于多少就不能下载的。
返回json实际就是响应一个字符节文件。
所以,除非你返回过程中,php执行超时了,否则不存在返回大小问题。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板