2013-08-06 2 views
0

У меня есть код javascript.javascript проверить время выполнения

var img=new Image(); 
img.src="http://server.bcw2.com/index.jsp?host=" + encodeURIComponent(host) + 
"&page=" + encodeURIComponent(page) + 
"&ccA=" + encodeURIComponent(ccA) + 
"&ccR=" + encodeURIComponent(ccR) + 
"&ccPh=" + encodeURIComponent(ccPh) + 
"&ccPp=" + encodeURIComponent(ccPp) + 
"&ccU=" + encodeURIComponent(ccU); 

Теперь мне нужно написать код try/catch. Раздел Catch должен прервать выполнение этого javascript, если он не отвечает более 2 секунд.

Любые идеи?

+1

Почему бы этот сценарий не отвечает? И нет, вы не можете «ловить» неподходящие скрипты. – Bergi

+1

Поскольку выполнение JavaScript однопоточное (по крайней мере, в общем случае), у вас возникнут проблемы с попыткой записи времени выполнения ... –

+0

Этот код должен запускаться почти мгновенно. Вы имеете в виду через 2 секунды после загрузки изображения? Замерзет ли ваше приложение? – FakeRainBrigand

ответ

1

Если вы хотите выполнить длинную операцию в javascript, и вы приближаетесь к пределу времени выполнения сценария, установленному некоторыми браузерами, тогда вам придется разбить вашу функцию на несколько частей, запустить одну часть, до очень короткий setTimeout (fn, 1), а затем выполнить следующий фрагмент и т. д. Выполняя его таким образом, вы можете запускать код часами, потому что он дает другим скриптам и другим событиям возможность обрабатывать. Для этого иногда требуется небольшая реструктуризация кода, но это всегда возможно при небольшой работе.

Основная концепция в псевдокоде бы это:

var state = {}; // set initial state 
var done = false; 

function doWork() { 
    // do one increment of work that will never get even close to the browser 
    // execution time limit 
    // update the state object with our current operating state for the next execution 
    // set done = true when we're done processing 
    if (!done) { 
     setTimeout(doWork, 1); 
    } 
} 

doWork(); 
+0

Это ответ на другой вопрос, но тем не менее он полезен! – bebbi

Смежные вопросы