我們想在後端查了服務器之後,返回數據量未知的json對象(每一條就是一個筆記數據)給前端。有可能上萬條。
請問這樣靠一個請求返回可以嗎?有沒有字符長度限製?
多謝
怪我咯2017-04-18 10:56:40
肯定有的,具體到php的話,php.ini有個most post的限制的,默認最大傳輸8M的數據,如果轉換成字符的話可能就沒法計算了,畢竟中文和英文的字符計算方法是有差別的,另外就算不斷擴大傳輸上限,傳輸的字元還是會超過的,所以請把上萬條資料分段傳輸,就算沒超過最大限制,傳輸的資料越多,對應的速度越慢
大家讲道理2017-04-18 10:56:40
HTTP response 的大小沒有明確的限制.
一般伺服器傳回給客戶端的資料, 如果伺服器已知回傳內容的大小, 那麼可以透過 Content-Length
頭來指定.
如果伺服器本身也不知道具體傳回給客戶端的資料大小(例如串流資料), 那麼可以使用 Chunked Transfer-Encoding 來識別.
不過伺服器端回傳大段的JSON 可不是一個好主意, 會造成客戶端解析時間過長, 用戶體驗不好. 最好的做法是進行數據的分頁/分段, 異步方式, 邊解析邊請求.
高洛峰2017-04-18 10:56:40
反對前面幾位混淆了請求跟響應的。
下載是沒有大小限制的,好像你透過http請求下載一個檔案時,是不會說檔案大於多少就不能下載的。
回傳json實際上就是回應一個字元節檔。
所以,除非你回到過程中,php執行逾時了,否則不存在回傳大小問題。