2014-02-11 12 views
4

我在加載頁面的模式viewController中使用webview。該頁面可能需要10秒才能在AJAX中加載其內容。UIWebView加載AJAX中的東西阻止主線程

如果在頁面完全加載後關閉模式viewController,那麼一切看起來都不錯。但是,如果我在頁面加載時關閉了模式viewController,UI將被完全鎖定。我停下調試,而UI是鎖着的,這裏是發生了什麼事在主線程:

Thread 1, Queue : com.apple.main-thread 
#0 0x390b6fa8 in __psynch_mutexwait() 
#1 0x3911bf50 in _pthread_mutex_lock() 
#2 0x366ac60c in _WebTryThreadLock(bool)() 
#3 0x366ad434 in WebThreadLock() 
#4 0x31151cf8 in -[UIWebView dealloc]() 
#5 0x30f2f9b2 in -[UIView dealloc]() 
#6 0x30f2f9b2 in -[UIView dealloc]() 
#7 0x38b04022 in (anonymous namespace)::AutoreleasePoolPage::pop(void*)() 
#8 0x2e6de1c8 in _CFAutoreleasePoolPop() 
#9 0x2e773e82 in __CFRunLoopRun() 
#10 0x2e6de470 in CFRunLoopRunSpecific() 
#11 0x2e6de252 in CFRunLoopRunInMode() 
#12 0x334182ea in GSEventRunModal() 
#13 0x30f93844 in UIApplicationMain() 
#14 0x00017074 in main at /Users/.../main.m:16 

的UI凍結了近似10秒,這是確切的時間的頁面需要加載。

我試圖在解除模態視圖控制器前調用[_webview stopLoading],但它沒有幫助。

有誰知道這裏發生了什麼,我該怎麼做才能防止webview凍結UI?謝謝

+0

具有相同的問題。無論如何,它似乎也不知道。 –

回答

0

原來,這是導致此凍結一些CSS屬性。因此,如果您遇到同樣的問題,並且您有幸能夠訪問UIWebView後面的頁面,請嘗試對某些CSS屬性發表評論,直到找到導致webView凍結的頁面爲止。