Чтение онлайн

ЖАНРЫ

JavaScript. Подробное руководство, 6-е издание
Шрифт:

localStorage.loan_apr = apr;

localStorage.loan_years = years;

localStorage.loan_zipcode = zipcode;

}

}

// Автоматически восстановить поля ввода при загрузке документа,

window.onload = function {

//
Если броузер поддерживает localStorage и имеются сохраненные данные

if (window.localStorage && localStorage.loan_amount) {

document.getElementById("amount").value = localStorage.loan_amount;

document.getElementById("apr").value = localStorage.loan_apr;

document.getElementById("years").value = localStorage.loan_years;

document.getElementById("zipcode").value = localStorage.loan_zipcode;

}

};

// Передать ввод пользователя серверному сценарию, который может (теоретически) возвращать

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

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

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

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 += "<li><a href=' " + lenders[i].url + " '>"+

lenders[i].name + "</a>";

}

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

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

ad.innerHTML = "<ul>" + list + "</ul>";

}

}

}

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

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

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

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

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

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

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

// элемент <canvas>, то просто вернуть управление,

Поделиться с друзьями: