Динамически формируемый HTML
- Войдите на сайт для отправки комментариев
Добра и времени суток.
была нана, заполнил всю память программ. Перешел на ESP8266.
рисую я тут теперь вэб интерфейс на немало страниц (хэхэ памяти то теперь много) , и как-то неохота с AJAX заморачиваться, тк достаточно обновления раз в минуты.
формирую страницу «на лету» , но при этом удивительно неудобно куски html, или построчно кидать клиент.принтом чередуя html и переменные.
удобно страницу в нотепаде++ нарисовать и целиком разместить. Но при этом некоторые участки разные : цвета, таблицы, числовые значения из переменных.
Вроде напрашивается формирование некоего String и редактирование внутри него участков, а потом вытряхивание того, что получилось, но это по сути тот же AJAX, только на этой стороне и немеряно оперативы.
в итоге все равно вышел на аякс. При этом формирую единый формат XML с максимальным количеством передаваемых параметров, а уж каждая страница берет из него только то, что ей нужно.
страницы храню в:
const char page_name[] PROGMEM = R”rawliteral ( <HTML> </HTML>) rawliteral”;
А как уважаемые кроты поступают в таких случаях?
Хранят статику в файлах в spiffs как белые люди.
Основное удобство в применяемом коде- прямой копипаст страницы без дополнительных шаманств. Дополнительное- тут же на вкладке IDE и страница и жаваскрипт в ней.
Раньше страница редактировалась в нотепаде++ и сохранялась на SD, с которой выгружалась и было все это очень неудобно в отладке и требовало sd на spi.
Может есть что то специяльное для таких случаев?
что то я со spiffs как то не подружился.
AJAX, но с JSON и/или ASCIIZ rawliteral через snprintf прогоняю.
что то я со spiffs как то не подружился.
Мошт вина бутылку или там букетик? Должно помочь.
Ибо реально вот так это все и делают. SPIFFS, AJAX, JSON, JS, уж прости, но так правда гораздо проще. и АсинкВебСервер. Без этого как-то даже стрёмно жить на ESP. Честное пионЭЭЭЭрское!
Ну на крайняк без файлов со многострочным литералом можно, смотрится программа даже читаемо.
Отлаживать нормальный веб-интерфейс можно на компьютере.
Понятно, значит я на верном пути.
пока использую веб сервер из примеров
а асинкВэбСервер откуда правильный берется?
вобщем то уже что то нашел, даже нашел, как внутри rawliteral подставлять куски html
Еще нашел , читаю думаю
спасибо
Ну не скажу что этот вариант лучше, но просто для подумать подойдет #298
Первая ссылка в гугле - https://github.com/me-no-dev/ESPAsyncWebServer
Ты нашел какой-то машинный перевод документации. Такое себе.
1. пишешь вебморду на диске Це:\, обычный хтмл файл но в ссылках ip-адрес девайса.
2. девайс (дуина, ESP) отдаёт только полезные данные. лучше json, он короткий и проще парсить.
3. фачишь корс игнор-заголовком, он выглядит так:
4. отладил, всё устраивает
5. копипаст хтмл файла из Це:\ в девайс, CORS-bypass заголовок удалить.
Про меню не понял, как оно соотносится с моими заморочками.
За ссылку спасибо.
Третий пункт не понял :( где в html его вписывать?
Про меню не понял, как оно соотносится с моими заморочками.
1- завести отдельную флешку/пзу с html. Тогда смена этой флешки может менять другую вебстраницу без перешивки.
2- организовывавать костыли. Поверх кода html вставлять Си конструкции, для усвоения всего компилятором. В моей ссылке я вставляю внешний код в параметры функции с переменными параметрами.
3- нагрузить препроцессор, для конвертирования кода html в усвояемый код С/с++
1. пишешь вебморду на диске Це:\, обычный хтмл файл но в ссылках ip-адрес девайса.
2. девайс (дуина, ESP) отдаёт только полезные данные. лучше json, он короткий и проще парсить.
3. фачишь корс игнор-заголовком, он выглядит так:
4. отладил, всё устраивает
5. копипаст хтмл файла из Це:\ в девайс, CORS-bypass заголовок удалить.
json коротким называют только те, кто tlv не знает )))
если п.4 - ок, то п.5 и делать не всегда стоит. пусть с девайса и берет данные, а разметку с другого сервера, где и места больше.