Доброго времени суток!
Я новичек в JS и слегка заплутал.
Допустим я делаю такой конструктор:
function widget(name, x, y) {
this.name = name;
this.x = x;
this.y = y;
//функция draw вызовет post запрос
this.draw = function() {
//добавим при помощи jQuery код виджета
// ............
//запросим, что надо у сервлета
$.post("http://localhost:8080/Testing", {command: "value"}, this.onPostResponse);
}
//А это асинхронный обработчик ответа на post запрос
this.onPostResponse = function(data){
var obj = JSON.parse(data); //кое-что получим и распарсим
// и т.д., некий код который что-то выведет на наш виджет
}
}
После описания всего этого я решил создать парочку таких "виджетов" на страничке:
$(document).ready(function(){
var myWidget1 = new widget("FIRST",100,200);
var myWidget2 = new widget("SECOND",150,300);
myWidget1.draw();
myWidget2.draw();
}
Но к сожалению, обработчик
this.onPostResponse отрабатывает только один из ответов (и то не всегда, в случайной последовательности).
Понимаю, что я накодил лажу. Подскажите пожалуйста, как все же прописать общий обработчик как метод объекта, и вызывать их с нескольких объектов в скрипте. Неужели надо писать десятки однотипных функций?
Я хотел сделать одну функцию и думал что она будет вызываться всегда для каждого из постов, а дальше в ней определять на основе пришедшей информации, какой из виджетов обновлять, используя this...