Всем доброго времени суток.
Хотелось бы узнать как можно улучшить код:
https://jsfiddle.net/um1wnj3b/1/
Например если я захочу сделать выпадающий список на все валюты, которые нынче существуют как это сделать не перечисляя их в ?
Что можно было бы поменять в самом коде js по вашему мнению чтобы это работало лучше?
JavaScript
Как можно улучшить код?
const
const
const
... 15 lines later...
const ...
Глаза замыливаются от таких монолитных блоков. Объявляйте переменные ближе к месту, где они используются. Пробельными строчками тоже хорошо бы иногда пользоваться, чтобы как-то разделять блоки кода.
api_key, base_url // resText, resElem — смешивать стили переменных - плохо, должно быть или поголовно snake, или camel.
Почему запрос делается при каждом клике? Пусть бы один раз сохранялся в виде объекта, и дальше быстро доставать значения оттуда. При желании можно запустить setInterval, который раз в 10 минут будет обновлять этот объект, если данные так быстро будут меняться.
Пока менял там-сям, от исходного кода ничо не осталось)) Убрал все кнопки: Приятно, когда без лишних телодвижений вводишь числа и моментально видишь результат. Работает при любых измененииях, и в одну сторону, и в обратную. (JsFiddle не позволяет, в обычном HTML-файле будет работать) → https://jsfiddle.net/vxb7raht/1/
Конечно, тот же код можно организовать сильно по разному. Зависит от предполагаемого объема кода, и что вообще должно получиться в итоге.
other_index = +!this_index; — не удержался, наверно очевиднее было бы записать
other_index = this_index == 0? 1 : 0;
const
const
... 15 lines later...
const ...
Глаза замыливаются от таких монолитных блоков. Объявляйте переменные ближе к месту, где они используются. Пробельными строчками тоже хорошо бы иногда пользоваться, чтобы как-то разделять блоки кода.
api_key, base_url // resText, resElem — смешивать стили переменных - плохо, должно быть или поголовно snake, или camel.
Почему запрос делается при каждом клике? Пусть бы один раз сохранялся в виде объекта, и дальше быстро доставать значения оттуда. При желании можно запустить setInterval, который раз в 10 минут будет обновлять этот объект, если данные так быстро будут меняться.
Пока менял там-сям, от исходного кода ничо не осталось)) Убрал все кнопки: Приятно, когда без лишних телодвижений вводишь числа и моментально видишь результат. Работает при любых измененииях, и в одну сторону, и в обратную. (JsFiddle не позволяет, в обычном HTML-файле будет работать) → https://jsfiddle.net/vxb7raht/1/
Конечно, тот же код можно организовать сильно по разному. Зависит от предполагаемого объема кода, и что вообще должно получиться в итоге.
other_index = +!this_index; — не удержался, наверно очевиднее было бы записать
other_index = this_index == 0? 1 : 0;
"Например если я захочу сделать выпадающий список на все валюты"
Отдельный файл / поле в БД со списком валют и формировать html на сервере
Отдельный файл / поле в БД со списком валют и формировать html на сервере
Asif Abidov
Как вариант можно сделать массив запросив данные с сервера и потом запросить оттуда?
Да ты и так красава,
куда дальше-то? :)
куда дальше-то? :)
Asif Abidov
Да думаю есть куда, особенно для новичка и подсказки бы не помешали)
Похожие вопросы
- Можно адекватную критику JS кода? Боковое выезжающее меню. Что можно улучшить? Как оптимизировать? Понятно ли написано?
- Помогите разобраться в логике кода (замыкания)
- Вопрос по стилю кода. Следует ли проверять наличие свойства в объекте если я точно знаю что оно должно там быть?
- Гляньте код пожалуйста? Он работает, но мне кажется так не пишут. Да и по default что то не хочет работать код.
- Посмотрите пожалуйста задание. Всё работает. Тем не менее, интересно услышать замечания по коду.
- Нет желаемого результата в коде.
- Не могу понять почему код на js не работает.
- Java не понимаю код
- Проверьте 2 кода ((( пожалуйста и ткните носом на ошибку. В общем 1 код работает частично, а второй вообще не работает. JS
- Вопрос только к тем, кто знает js: Кому не лень, объясните мне нубу значение каждого элемента небольшого кода (10 строк).