Asp.net
超出 JavaScriptSerializer.MaxJsonLength。處理此問題的最佳做法是什麼?
我使用 jQuery 的 $.ajax() 函式將大量數據發送到客戶端。我在 ASP.NET Web 服務中呼叫一個返回 JSON 數據的方法。對於大多數搜尋來說,一切都很好,但是當我要返回一個大數據集時,我遇到了 JavaScriptSerializer MaxJsonLength 屬性的問題。處理此問題的最佳做法是什麼?我不想隨意設置最大長度。如果返回的數據大於目前最大值,我可以在 Web 服務中設置 MaxJsonLength,還是應該重新編寫數據並將數據塊發送到客戶端?
這是來自網路服務的相關片段:
Dictionary<string, object> jsonValuePairs = new Dictionary<string, object>(); //add some data to the dictionary... return System.Web.Script.Serialization.JavaScriptSerializer.Serialize(jsonValuePairs);
為從客戶端腳本呼叫的 Web 方法設置最大長度的唯一方法是通過 web.config 文件(如下)。你設置這個有什麼問題?每次我都會通過多次 xhr 呼叫來流式傳輸部分數據。
<system.web.extensions> <scripting> <webServices> <jsonSerialization maxJsonLength="500000"> </jsonSerialization> </webServices> </scripting> </system.web.extensions>更新:預設大小為 2097152,相當於 4 MB 的 Unicode 字元串數據。您真的要將這麼多數據發送回客戶端嗎?如果是這樣,您可能需要查看應用程序設計,因為使用者體驗會很慢而且很麻煩。