Духовность™
Продвинутый новичок
Написал тут либу для себя, для простеньких Ajax-манипуляций, она работает, все круто, но я нифига не понял, как она работает в одном месте.. помогите разобраться с этим шаманством JS.
В общем, как мы знаем, для асинхронных запросов нужно определить onreadystatechange свойство XmlHttpRequest. Что бы это делал клиент, я предусмотрел два способа определения onreadystatechange, один из которых выглядит так:
реализовано это так:
Что тут происходит? Инстансу главного объекта ajax присваивается функция, которая должна быть исполнена при onreadystatechange. Но в теле функции я пишу фактически ссылку на сам инстанс. Это вообще нормально? Я так понимаю, я передаю таким способом ссылку на самого себя?
В общем, как мы знаем, для асинхронных запросов нужно определить onreadystatechange свойство XmlHttpRequest. Что бы это делал клиент, я предусмотрел два способа определения onreadystatechange, один из которых выглядит так:
PHP:
...
// анонимная функция будет вызываться при событии onreadystatechange
ajax.setObserverState(function(){ alert('Привет, я результат запроса: ' + ajax.getText()) });
ajax.get(...)
PHP:
this.setObserverState = function(observer_function)
{
this.observerState = function()
{
if (req.readyState==4) {
if (req.status == 200) {
observer_function();
}
}
}
}
// ...
req.onreadystatechange = this.observerState;