我们想在后端查了服务器之后,返回数据量未知的json对象(每一条就是一个笔记数据)给前端。有可能上万条。
请问这样靠一个请求返回可以吗?有没有字符长度限制?多谢
业精于勤,荒于嬉;行成于思,毁于随。
肯定有的,具体到php的话,php.ini有个most post的限制的,默认最大传输8M的数据,如果转换成字符的话可能就没法计算了,毕竟中文和英文的字符计算方法是有区别的,另外就算不断扩大传输上限,传输的字符还是会超过的,所以请把上万条数据分段传输,就算没超过最大限制,传输的数据越多,相应的速度越慢
HTTP response 的大小没有明确的限制.
一般服务器返回给客户端的数据, 如果服务器已知返回内容的大小, 那么可以通过 Content-Length 头来指定.
Content-Length
如果服务器本身也不知道具体返回给客户端的数据大小(例如流式数据), 那么可以使用 Chunked Transfer-Encoding 来标识.
不过服务器端返回大段的 JSON 可不是一个好主意, 会造成客户端解析时间过长, 用户体验不好. 最好的做法是进行数据的分页/分段, 异步方式, 边解析边请求.
一个请求返回大量json数据,前端解析的时间也很长,如果不做异步处理可能会线程卡死,最好是分段请求
可以,但要考虑两端的能力尤其是服务器端的性能,和传输的稳定性。一般而言这么做是十分不推荐的。
不推荐,可以使用分页和ajax来加载
反对前面几位混淆了请求跟响应的。下载是没有大小限制的,好像你通过http请求下载一个文件时,是不会说文件大于多少就不能下载的。返回json实际就是响应一个字符节文件。所以,除非你返回过程中,php执行超时了,否则不存在返回大小问题。
肯定有的,具体到php的话,php.ini有个most post的限制的,默认最大传输8M的数据,如果转换成字符的话可能就没法计算了,毕竟中文和英文的字符计算方法是有区别的,另外就算不断扩大传输上限,传输的字符还是会超过的,所以请把上万条数据分段传输,就算没超过最大限制,传输的数据越多,相应的速度越慢
HTTP response 的大小没有明确的限制.
一般服务器返回给客户端的数据, 如果服务器已知返回内容的大小, 那么可以通过
Content-Length
头来指定.如果服务器本身也不知道具体返回给客户端的数据大小(例如流式数据), 那么可以使用 Chunked Transfer-Encoding 来标识.
不过服务器端返回大段的 JSON 可不是一个好主意, 会造成客户端解析时间过长, 用户体验不好. 最好的做法是进行数据的分页/分段, 异步方式, 边解析边请求.
一个请求返回大量json数据,前端解析的时间也很长,如果不做异步处理可能会线程卡死,最好是分段请求
可以,但要考虑两端的能力尤其是服务器端的性能,和传输的稳定性。一般而言这么做是十分不推荐的。
不推荐,可以使用分页和ajax来加载
反对前面几位混淆了请求跟响应的。
下载是没有大小限制的,好像你通过http请求下载一个文件时,是不会说文件大于多少就不能下载的。
返回json实际就是响应一个字符节文件。
所以,除非你返回过程中,php执行超时了,否则不存在返回大小问题。