JavaScript. Подробное руководство, 6-е издание (Флэнаган) - страница 19

>

>// список ссылок на сайты местных кредитных учреждений, готовых предоставить кредит.

>// Данный пример не включает фактическую реализацию такого сценария поиска кредитных

>// учреждений. Но если такой сценарий уже имеется, данная функция могла бы работать с ним.

>function getLenders(amount, apr, years, zipcode) {

>  // Если броузер не поддерживает объект XMLHttpRequest, не делать ничего

>  if (!window.XMLHttpRequest) return;


>  // Отыскать элемент для отображения списка кредитных учреждений

>  var ad = document.getElementById("lenders”);

>  if (!ad) return; // Выйти, если элемент отсутствует


>  // Преобразовать ввод пользователя в параметры запроса в строке URL

>  var url = "getLenders.php" + // Адрес URL службы плюс

>    "?amt=" + encodeURIComponent(amount) + // данные пользователя

>    "&apr=" + encodeURIComponent(apr) + //в строке запроса

>    "&yrs=" + encodeURIComponent(years) +

>    "&zip=" + encodeURIComponent(zipcode);


>  // Получить содержимое по заданному адресу URL с помощью XMLHttpRequest

>  var req = new XMLHttpRequest(); // Создать новый запрос

>  req.open("GET", url); // Указать тип запроса HTTP GET для url

>  req.send(null); // Отправить запрос без тела


>  // Перед возвратом зарегистрировать обработчик события, который будет вызываться

>  // при получении HTTP-ответа от сервера. Такой прием асинхронного программирования

>  // является довольно обычным в клиентском JavaScript,

>  req.onreadystatechange = function() {

>    if (req.readyState == 4 && req.status == 200) {

>      // Если мы попали сюда, следовательно, был получен корректный НТТР-ответ

>      var response = req.responseText; // HTTP-ответ в виде строки

>      var lenders = JSON.parse(response); // Преобразовать в JS-массив


>      // Преобразовать массив объектов lender в HTML-строку

>      var list = "";

>      for(var і = 0; і < lenders.length; i++) {

>        list += "

  • "+

    >          lenders[i].name + "";

    >      }

    >      // Отобразить полученную HTML-строку в элементе,

    >      // ссылка на который была получена выше.

    >      ad.innerHTML = "

      " + list + "
    ";

    >    }

    >  }

    >}


    >// График помесячного изменения остатка по кредиту, а также графики сумм,

    >// выплачиваемых в погашение кредита и по процентам в HTML-элементе .

    >// Если вызывается без аргументов, просто очищает ранее нарисованные графики,

    >function chart(principal, interest, monthly, payments) {

    >  var graph = document.getElementById("graph"); // Ссылка на тег

    >  graph.width = graph.width; // Магия очистки элемента canvas


    >  // Если функция вызвана без аргументов или броузер не поддерживает