我們想在後端查了服務器之後,返回數據量未知的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執行逾時了,否則不存在回傳大小問題。