簡體   English   中英

ajax請求瀏覽器限制

[英]ajax request browser limit

一個更通用的問題開始。 如果ajax請求是JSON請求,那么它的響應大小是否有限制?

我通過JSON請求傳遞大量數據,並在FF3中遇到“腳本堆棧配額耗盡”消息。 現在在FF2中,配額為4mb,但在FF3中為640kb。 我想知道這是否是JSON特定的。 普通的ajax請求是否有響應大小限制? 一個可能由瀏覽器強加的? 如果非JSON請求沒有與腳本堆棧配額相同的問題,我如何對返回的數據進行分類? XML也許......我不確定我是否會在w3c規范的范圍內使用我的數據。

iirc這是去年FF3上的一個錯誤,但我相信(是的, 在這里檢查 )它是固定的。 看不起評論,有這個說明:

注意:此測試取決於體系結構和可用內存。 在具有2G和64位構建的x86_64計算機上,它將因InternalError而失敗:腳本堆棧空間配額已用盡但是在具有4G和64位構建的x86_64上它將通過。

注釋還認為這是一個純粹的JS問題,這意味着雖然數據格式嚴格無關緊要,但是非常大的JSON塊可能會破壞JS字符串可能沒有的JS堆棧。 我想你只需要嘗試。

OTOH,它被標記為固定,因此有一個問題,即確保你也使用最新版本的FF。

我懷疑如果您發送和接收數據的限制是不同的,所以我將假設它是圍繞向客戶端發送數據。 JSON只是一種數據類型。 你真正在做的是,懷疑是,正在對javascript腳本進行GET請求,該腳本應限制在合理的大小。 JSON的wiki也說使用XMLHTTPRequest方法,它可能會繞過你的限制,但你仍然需要一個代理來避免跨域腳本限制並使用更合理的mime類型,如html,xml,binary等。如果您在JSON中放置任何圖像,請記住它們可以是鏈接,因為這些請求沒有跨域問題。

仔細檢查它不是導致你麻煩的請求數量,瀏覽器也有限制。 有時低至2。

我認為annakata是對的。

錯誤消息的文本還表明問題是由於json結構的深度而發生的,而不是KB的大小。

這意味着當你評估你的json時,JavaScript引擎在解析json時會使用一個堆棧。 由於json結構中的深度(嵌套元素的數量),此堆棧達到了最大限制。

您可能想要檢查一些更平坦的結構是否適合您的要求。

作為一般規則,我試圖保持我的AJAX數據小。 如果我必須傳遞大量數據,我將通過多次調用來檢索它。 因此,如果我正在加載一個表,我將有一個方法可以告訴我將返回多少條記錄,另一種方法是以#的組(通常為20條)返回記錄。

這樣做的好處是我可以在檢索數據時加載頁面,而用戶不會等待一個大的有效負載。

此外,最好使用JSON而不是XML。 JSON通常是比XML更小的有效負載,並且許多測試表明瀏覽器更容易加載它。

我沒有遇到任何有形限制,但是你的用戶交互性,將大數據分解為多個調用。 大型表需要永遠通過ajax傳輸,特別是如果用戶正在運行IE。 大數據+ Ajax + IE = IE崩潰。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM