搜索

首页  >  问答  >  正文

php - 服务器端使用json返回数据,请问大小的极限是多少?

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

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

迷茫迷茫2806 天前1329

全部回复(6)我来回复

  • 怪我咯

    怪我咯2017-04-18 10:56:40

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

    回复
    0
  • 大家讲道理

    大家讲道理2017-04-18 10:56:40

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

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

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

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

    回复
    0
  • 迷茫

    迷茫2017-04-18 10:56:40

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

    回复
    0
  • 大家讲道理

    大家讲道理2017-04-18 10:56:40

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

    回复
    0
  • PHP中文网

    PHP中文网2017-04-18 10:56:40

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

    回复
    0
  • 高洛峰

    高洛峰2017-04-18 10:56:40

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

    回复
    0
  • 取消回复