Java



           

Как заставить AJAX читать между строк - часть 3


function adjustMessage(evt) { MessageObj = document.getElementById('InstantMessage'); if (isThisMozilla) event=evt;

var rightedge = document.body.clientWidth-event.clientX; var bottomedge = document.body.clientHeight-event.clientY; if (rightedge < MessageObj.offsetWidth) MessageObj.style.left = document.body.scrollLeft + event.clientX - MessageObj.offsetWidth; else MessageObj.style.left = document.body.scrollLeft + event.clientX; if (bottomedge < MessageObj.offsetHeight) MessageObj.style.top = document.body.scrollTop + event.clientY - MessageObj.offsetHeight; else MessageObj.style.top = document.body.scrollTop + event.clientY;

MessageObj.innerHTML = 'Loading...'; MessageObj.style.visibility = "visible"; }

Итак, мы имеем окно сообщения, рапортующее о загрузке данных. Теперь следует выполнить запрос к контроллеру за определением термина. Вы можете написать собственные функции для обслуживания AJAX запросов. Но если вы только начинаете работать с AJAX, я могу порекомендовать вам готовую библиотеку от Yahoo. В этом случае запрос будет выглядеть так:

function getDefinition(term,evt){ adjustMessage(evt); var request = YAHOO.util.Connect.asyncRequest('POST',
'http://адрес_контроллера', callback, 'term='+term); }

Раз мы запрашиваем контроллер, очевидно, нам надлежит его написать. В общем случае, это самая простая часть. Задача контроллера - вернуть описание термина, переданного в POST. Каким бы языком программирования мы не пользовались при написании контроллера, нам достаточно выполнить несколько простейших операций.

  • соединиться с базой данных
  • выполнить SQL запрос для получения определения термина
  • отобразить на консоль результат в следующем виде:
  • { "errormsg" : "в случае ошибки ее код", "content" : "текст определения" }

    Это структура данных, известная как JSON. Она воспринимается JavaScript в явном виде, как «родная». В случае использования AJAX-библиотеки YAHOO ответ контроллера обслуживается следующей конструкцией




    Содержание  Назад  Вперед