2012-11-06 49 views
1

我有JS稱爲使用stringByEvaluatingJavaScriptFromString並需要大約9秒運行,但我希望能夠立即取消,如果用戶需要。取消stringByEvaluatingJavaScriptFromString

但似乎整個線程被阻止。

我會願意做任何事情來允許用戶取消這一目的(例如刪除UIWebView的),但似乎沒有任何的應用程序等待stringByEvaluatingJavaScriptFromString繼續之前復工。

回答

0

不知道如何取消它。爲了您的JavaScript改善用戶界面,從這個UIWebView stringByEvaluatingJavaScriptFromString in background

嘗試分裂成離散的執行塊和流水線他們使用JavaScript計時器,像這樣(JS代碼,而不是對象 - C):

var i = 0; 
var operation = function() { 

    switch (i) { 
    case 0: 
     //do first part of code 
     break; 
    case 1: 
     //do second part of code 
     break; 
    case 2: 
     //do third part of code 
     break; 
    etc... 
    } 

    //prepare to execute next block 
    i++; 
    if (i < TOTAL_PARTS) { 
     setTimeout(operation, 0); 
    } 
}; 
operation(); 

這會阻止腳本在執行時阻止用戶交互。

欲瞭解更多詳情請檢查該線程,UIWebView stringByEvaluatingJavaScriptFromString in background

相關問題