Конвертер валют для сайта без PHP

Конвертер валют для сайта без PHP

Конвертер валют для сайта без PHP

Задача написания конвертера с обновлением курса валюты довольно тривиальна.

Можно просто взять XML интерфейс одного из банков, средствами PHP распарсить нужную валюту, сохранить данные в кэш, чтобы больше не тревожить банк.

Кэш можно обновлять с заданным интервалом, получая в нужный момент актуальные данные для конвертера.

Всё это можно сделать с применением AJAX, адаптивной вёрстки и прочих плюшек, в итоге получив красивый и функциональный виджет для сайта или даже целый модуль для вашей CMS.

Однако что можно сделать, если нет возможности применить серверную обработку данных?

Если никак нельзя получить данные с помощью PHP?

Если просто нет доступа к скриптам на сервере (такое часто встречается, если используется конструктор сайтов или лендингов)?

Как бы поступили Вы?

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

Всё уже разработано: загрузка данных по валютам из банка, парсинг валют, кэширование результатов, вывод их пользователю, виджет и всё всё всё…

Но не будем унывать раньше времени: непростые задачи помогают повысить квалификацию.
Итак, что мы имеем:

  1. Необходимо получить данные о курсах валют с сайта банка
  2. Распарсить данные
  3. Подставить эти данные в форму конвертера валют
  4. Организовать собственно сам функционал подсчёта
  5. Сделать всё без применения PHP и AJAX

Мы будем использовать сторонний сервис для получения данных с сайта банка: https://query.yahooapis.com

Который любезно получит для нас данные с помощью того же jQuery get:

$.get('https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20xml%20where%20url%3D%27httpss%3A%2F%2Fwww.cbr.ru%2Fscripts%2FXML_daily.asp%3Fdate_req%3D' + curDate + '%27&format=json&callback=', function(data) {

 if (data != 'ERR') {
     var rates = '';
     $(data.query.results.ValCurs.Valute).each(function(key, value) {
         if (-1 != $.inArray(value.CharCode, curCodes)) {
         curRate = value.Value.substring(0,5);
         curRate = curRate.replace(/,/g, ".");
         curRate = parseFloat(curRate);
         curRate = curRate.toString().substring(0,5);
        }
        $('#rates').html(rates);
        $('#rate-cur').html(curRate);
        $('#rate-rur').val(curRate);
    });
 } else {
     $('#rates').html('<li>Данные недоступны</li>');
     $('#rate-cur').html('ERR');
 }

Ну а дальше мы просто подставляем нужные данные в наш конвертер и имеем всегда свежий курс валют без использования серверных скриптов.
И вот, что в итоге у нас получилось:

Конвертер валют для сайта без PHP

Конвертер валют для сайта без PHP