搜尋

首頁  >  問答  >  主體

php - 伺服器端使用json回傳數據,請問大小的極限是多少?

我們想在後端查了服務器之後,返回數據量未知的json對象(每一條就是一個筆記數據)給前端。有可能上萬條。

請問這樣靠一個請求返回可以嗎?有沒有字符長度限製?
多謝

迷茫迷茫2802 天前1318

全部回覆(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
  • 取消回覆