簡體   English   中英

傳遞給jQuery.append()的字符串大小是否有限制

[英]Is there a limit on the size of the string passed to jQuery.append()

我在Angular中編寫了一個基本程序,它使用路由器功能將兩個頁面呈現為單頁面應用程序。 到目前為止,就是這樣。 我有一個頁面,其中包含兩個用於導航的按鈕,以及一個包裝div(ng-view),當單擊相應的按鈕時,該頁面填充了兩個頁面的內容。

當我嘗試加載兩個頁面中較大的一個時,我收到以下錯誤:

SyntaxError: Unexpected token <

從angular.js:11594拋出此錯誤(我使用的是版本1.3.9)。 調試之后,我發現jQuery中拋出了一個異常,代碼如下:

this.empty().append( value );

我查看了輸入參數'value',它非常大。 它包含超過11,000行,大1.59 MB。

我在html格式檢查器( http://www.freeformatter.com/ )中運行輸入字符串。 格式很好,沒有額外的開放標記。

是否有可能jQuery的方法無法處理如此大的字符串? 我在Google上搜索了這樣的限制,但我發現的只是使用jQuery應用限制的建議,文檔( http://devdocs.io/jquery/append )沒有提到這樣的限制。

筆記:

  1. 我正在使用jQuery版本1.11.0
  2. 我無法更新版本,因為我的團隊使用PrimeFaces,這是與PrimeFaces版本匹配的jQuery版本。
  3. 從5830行拋出異常。
  4. 大文件由JSF在服務器端創建。 我無法改變它。
  5. 我嘗試使用iframe,但它確實有效。 我的猜測是只使用jQuery附加iframe元素,然后將大內容加載到iframe中。 我的團隊負責人不希望我使用iframe,所以這沒有幫助。

謝謝。

你要面對的第一個限制是,如果字符串超過512個字節,那么它創建的dom片段不會被緩存。 下一個限制是瀏覽器中.innerHTML的限制。 但是它非常巨大(高)......但是在附加大量內容的同時,你將面臨巨大的滯后(可能需要很長時間才能加載)。

暫無
暫無

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

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