2013-08-08 1 views
0

Я с помощью холста, чтобы нарисовать диаграмму:Detect закончить яваскрипт, чтобы показать/скрыть загрузки значок

var lg = new html5.graph.line //(just sample) 
lg.draw(itemsReDraw, colorReDraw, line, param); 

Эта линия занимает около 6 секунд, я хочу показать значок загрузки и когда выше линия финиша, значок загрузки будет скрывать().

Я не могу найти, как определить, заканчивается ли эта строка.

Любая помощь или другой способ сделать это будет оценен.

Благодарим за помощь.

+1

Что это за объект html5.graph.line? –

+2

Положите его на jsfiddle, чтобы мы могли помочь. –

+0

html5.graph.line - это просто мой собственный .js, чтобы нарисовать диаграмму, мне нужно здесь, чтобы определить, есть ли строка: lg.draw (itemsReDraw, colorReDraw, line, param); Готово или нет. – Tom

ответ

1

Не являются ли функции розыгрыша синхронными? Вы должны иметь возможность просто вызывать все, что хотите, на линии сразу после draw(blah), и оно будет исполнено сразу после завершения розыгрыша. Если вы хотите немного отвлечь его, вы можете добавить дополнительный параметр в свою функцию html5.graph.line.draw, называемую «обратный вызов», и выполнить этот обратный вызов сразу после команды рисования.

html5.graph.line.draw = function (itemsReDrae, colorReDraw, line, param, callback) { 
    //draw the line 
    if (typeof (callback) == 'function') { 
     callback(); 
    } 
}; 

Затем, когда вы хотите использовать функцию рисования, просто включите обратный вызов.

//show the loading overlay 
lg.draw(true, true, line, param, function() { 
    //hide the loading overlay 
    console.log('done!'); 
}); 
+0

Спасибо, я проверю. – Tom

+0

@Tom здесь больше на обратных вызовах. http://recurial.com/programming/understanding-callback-functions-in-javascript/ – Swordfish0321

+0

@ Swordfish0321: Большое спасибо – Tom

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