2010-09-28 43 views
2


最近,我遇到了一個與我的應用程序有關的問題:從服務器返回的JSON字符串的大小超過了默認的maxJsonLength。我已經做了一些研究並實施了一些修復,包括分頁的變化。一切看起來都很棒。但是,我仍然有一些問題沒有得到答覆。關於ASP.NET中maxJsonLength的問題

首先,大部分的來源指向這篇文章: http://geekswithblogs.net/frankw/archive/2008/08/05/how-to-configure-maxjsonlength-in-asp.net-ajax-applications.aspx

1.爲什麼2,097,152(2MB)? 2MB是太多的數據要加載的網頁。 (除非用戶正在下載內容,但這是一個不同的故事)即使是1MB也是太多了。

2.比,作者繼續以500,000的maxJsonLength爲例。爲什麼這個號碼?這只是一個如何設置屬性的例子嗎?一些消息來源指出,500,000是極限。嗯,這不是,因爲我用2,097,152(2MB,大約是500,000的4倍)測試了我的應用程序,它工作正常。

3.其他一些消息來源指出,4MB是限制......那麼,限制是什麼?有限制嗎?這與服務器的響應限制有關嗎?

4.最後,我想獲得從服務器接收JSON字符串的長度的強烈建議。不是應該設置maxJsonLength的數字,而是JSON字符串的實際長度,類型爲「要爭取什麼」。

預先感謝您。

回答

1

沒有硬這裏快治。您的Json長度取決於您的應用程序以及您要返回給客戶端的信息。

如果你真的想要一個「經驗法則」,它應該是儘可能的小,以傳達你所需要的數據。

對於最大值,真正的限制將再次取決於瀏覽器的要求,但我個人絕不會超過2mb用於Json消息,這僅僅是因爲它會發送這些消息。

+0

從我同時固定了我的應用程序運行測試,2MB看了太多。即使是一個硬限制。你什麼時候升到2MB?你能舉一個例子,說明在頁面上做了什麼數據和做了什麼? – Dimskiy 2010-09-28 14:45:28

+0

我有一個實時報告應用程序發送大量的數據給只有局域網用戶的用戶,在這種情況下它是「好的」,因爲它們是本地的,並且傳輸的延遲是預期的。 – 2010-09-28 14:52:40

1

據我瞭解,總限額是由你所提到的maxJsonLength和HttpRuntimeSection.MaxRequestLength的較小的決定。我目前正在測試這個,我會盡快回復你。

當然,這裏的大問題是,它很少是一個好主意,返回如此大量的數據。每當我的迴應開始超過100KB時,我會再看看 我的整體設計,並找到方法來根據需要提供更小的塊。即使這100KB對於純粹的數據場景來說也很高,我認爲這是純文本數據,而不是圖像或腳本。