2011-09-06 144 views
1

我解析在IE8 2MB的JSON字符串。 JSON.Parse行需要一些時間才能返回,IE8會顯示一條消息,詢問用戶是否要中止腳本。解析非常大的JSON字符串在IE導致問題

有沒有什麼辦法可以抑制這個消息? (或以某種方式加速JSON.Parse)

我知道微軟KB175500,但這不適合,因爲我的目標用戶將不具有管理員訪問權限,無法在他們的SOE機器上進行註冊表修改。

+0

是從第三方或您自己的主機您的JSON? – 2011-09-06 04:36:53

+0

這是一個本地文件。 JSON字符串已存儲在JS中的一個變量中 - 導致問題的那行是將字符串變量解析爲JavaScript對象的行。 – Ozzah

+0

您的用戶是否也上傳了該文件? – 2011-09-06 04:39:08

回答

3

我有同樣的問題。顯然沒有辦法消息打壓,但也有技巧,使IE 認爲它仍然致力於通過使用asynchronous iteration pattern(死鏈接,查看下面的評論)。

這來自於一個答案,我的問題之一: loop is too slow for IE7/8

+0

鏈接已死 –

+0

嗯,這是愚蠢的。我搜索谷歌'並行迭代JavaScript'並找到http://stackoverflow.com/questions/8413857/whats-the-smartest-cleanest-way-to-iterate-async-over-arrays-or-objs – Jacksonkr

0

如果瀏覽器是不滿JSON解析器正在多久,這裏還有隻有四種選擇,我知道的:

  1. 獲得更快的JSON解析器,這並不需要這麼長時間。
  2. 將您的JSON數據分解爲更小的部分,因此您只能一次解析更小的部分。
  3. 修改JSON解析器塊工作,以便它可以在一個塊解析數據的一部分,然後在很短的超時,解析下一大塊,等等...這將阻止瀏覽器的提示,但可能是很多的工作來編寫/修改以這種方式工作的JSON解析器。
  4. 如果你可以肯定的內容是安全的,那麼如果你使用eval而不是解決這個問題一個JSON解析器的作品可以看到的。