Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   использование XML при расчете (https://javascript.ru/forum/misc/70292-ispolzovanie-xml-pri-raschete.html)

carder 24.08.2017 22:02

оптимальное использование данных из XML
 
рассчитываю стоимость доставки, опираясь на данные из файла XML (там 150 разных значений) и не могу понять, оптимальный ли это вариант, или есть какие-то еще?
Итак, как я себе это понял:
1. Через XMLHttpRequest вызываю XML.
2. Выковыриваю себе нужные значения.
3. Могу использовать эти значения только в составе onreadystatechange (так как запрос асинхронный, а синхронный использовать не рекомендуется).
Всё так, или есть какие-то более удобные альтернативы?

j0hnik 24.08.2017 23:37

А этот XML это данные с какого то стороннего сайта которые часто меняются?

carder 25.08.2017 12:42

Да, со стороннего сайта, но меняется не часто, поэтому сохраняю на свой сервер и планирую обновлять раз в неделю

laimas 25.08.2017 12:54

Цитата:

Сообщение от carder
поэтому сохраняю на свой сервер и планирую обновлять раз в неделю

А еще распарсить один раз и получать JSON.

carder 25.08.2017 19:06

а можно чуть подробнее, пожалуйста? Вот распарсил я, перевел в JSON - как это в скрипт передать? То есть вот эти данные JSON они как передаются?
Если через файл, тем же обращением XMLHttpRequest, то выгоды получается никакой - то же ограничение на глобальную переменную.
Подозреваю, что можно передавать в какой-то скрытый контейнер в html и парсить оттуда, но не встречаю нигде такой рекомендации. Используется такой метод, или как-то еще можно?

laimas 25.08.2017 19:44

Цитата:

Сообщение от carder
Вот распарсил я, перевел в JSON - как это в скрипт передать?

А что переводить то, парсер сразу готовит массив. Данные этого массива где-то надо хранить. Другими словами, такими вещами занимается планировщик задач cron. Получил, распарсил, сохранил в базе.

При запросе клиента, если на странице требуются эти данные, значит их получают из базы и как JSON отдают на страницу, например в РНР так:

html код страницы ....
<script>
var data = <?=json_encode($res)?>
</script>
</body>
</html>


где $res массив данных полученных из базы.

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

carder 25.08.2017 19:51

а если у меня скрипт внешний подключается, я могу как-то обратиться к data, заданной предложенным методом? Они в одном пространстве?

laimas 25.08.2017 20:08

Цитата:

Сообщение от carder
а если у меня скрипт внешний подключается, я могу как-то обратиться к data, заданной предложенным методом?

Конечно.


Часовой пояс GMT +3, время: 14:57.