JavaScript неблокирующая загрузка изображений? - PullRequest
1 голос
/ 04 марта 2011

эта функция вызывается каждые 30 мс

function draw(){
    context.clearRect(0, 0,canvas.width, canvas.height);

    context.drawImage(displayme, plot.position.x, plot.position.y, plot.width, plot.height);    
}

, и некоторые события мыши изменяют displayme.src и положение графика

, но когда загружается новый src, все остальные javascript получаютзаблокировал и не могу переместить (ранее загруженное) изображение

Я также пытался использовать другой объект Image и назначить его для "displayme", но он не работал

любая помощь будет наиболеедобро пожаловать

1 Ответ

3 голосов
/ 04 марта 2011

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

function draw(){
    // allows immediate return and "schedules" the anonymous function next
    setTimeout( function() {
        context.clearRect(0, 0,canvas.width, canvas.height);
        context.drawImage(displayme, plot.position.x, plot.position.y,
                                     plot.width, plot.height);
    },0);
 }
...