#html #ajax #arduino #esp8266
#HTML #ajax #arduino #esp8266
Вопрос:
Я не могу понять, как отправить данные за один раз. Это часть кода.
Ну, почему я спрашиваю, так это то, что одновременная отправка его немного задерживается.
Я видел, что в другой теме кто-то опубликовал фрагмент кода, но это не сработало.
void handleRoot() {
String s = MAIN_page; //Read HTML contents
server.send(200, "text/html", s); //Send web page
}
void handleFORESTTEMPERATURE() {
String ForrestTemperatureDev = String(ForestTemperature, 1);
server.send(200, "text/plane", ForestTemperatureDev); //Send ADC value only to client ajax request
}
void handleFORESTPRESSURE() {
String ForrestPressureDev = String(ForestPressure);
server.send(200, "text/plane", ForrestPressureDev); //Send ADC value only to client ajax request
}
void handleFORESTHUMIDITY() {
String ForrestHumidityDev = String(ForestHumidity);
server.send(200, "text/plane", ForestHumidityDev); //Send ADC value only to client ajax request
}
server.on("/readFORESTPRESSURE", handleFORESTPRESSURE);
server.on("/readFORESTTEMPERATURE", handleFORESTTEMPERATURE);
server.on("/readFORESTHUMIDITY", handleFORESTHUMIDITY);
server.on("/readFORESTWEATHERSTATUS", handleFORESTWEATHERSTATUS);
Комментарии:
1. что-то вроде этого github.com/esp8266/Arduino/blob /… ?
2. @Juraj да, именно так, как я могу это сделать с приведенной выше информацией? можешь мне показать. поскольку я все еще учусь. с уважением и благодарностью
Ответ №1:
Что-то вроде этого отправило бы все три значения, разделенные символом a ;
, когда readALL
запрашивается. Три значения могут быть разделены ;
в вашем принимающем приложении. Использование JSON потребует немного больше работы.
Примечание 1: Непроверенный, я только что ввел его, но вы поняли идею.
Примечание2: это text/plain
не text/plane
так.
void handleRoot() {
String s = MAIN_page; //Read HTML contents
server.send(200, "text/html", s); //Send web page
}
void handleFORESTTEMPERATURE() {
String ForrestTemperatureDev = String(ForestTemperature, 1);
server.send(200, "text/plain", ForestTemperatureDev); //Send ADC value only to client ajax request
}
void handleFORESTPRESSURE() {
String ForrestPressureDev = String(ForestPressure);
server.send(200, "text/plain", ForrestPressureDev); //Send ADC value only to client ajax request
}
void handleFORESTHUMIDITY() {
String ForrestHumidityDev = String(ForestHumidity);
server.send(200, "text/plain", ForestHumidityDev); //Send ADC value only to client ajax request
}
void handleALL() {
String AllDev = String(ForestTemperature, 1) ";" String(ForestPressure) ";" String(ForestHumidity);
server.send(200, "text/plain", AllDev); //Send ADC values only to client ajax request
}
server.on("/readFORESTPRESSURE", handleFORESTPRESSURE);
server.on("/readFORESTTEMPERATURE", handleFORESTTEMPERATURE);
server.on("/readFORESTHUMIDITY", handleFORESTHUMIDITY);
server.on("/readFORESTWEATHERSTATUS", handleFORESTWEATHERSTATUS);
server.on("/readALL", handleALL);
Комментарии:
1. Спасибо!! теперь мне нужно посмотреть, как с этим справиться на моей HTML-странице. скоро я открою еще один вопрос. Спасибо
2. потому что прямо сейчас я не знаю, какое значение имеет какое устройство. итак, я не знаю, возможно ли это другим способом?. потому что я использую текущий статус на своей странице, а также кнопку, которая показывает значение при нажатии. прямо сейчас я вызываю такие устройства на странице html, getData(‘UVFOREST’, ‘readFORESTUV’);.
3. Значения из handleAll всегда будут поступать в одном и том же порядке в одной строке на веб-странице, например: «temp;pres;hum». Поместите это в Javascript в строку str, а затем выполните: var values = str.split(«;»); тогда значения [0] будут температурой, значения [1] будут давлением, значения [2] будут влажностью.
4. спасибо, хорошо, я пробую, я все еще учусь. я знаю, что ты имеешь в виду, но можешь ли ты показать мне пример сценария, чтобы я мог начать обучение. с уважением
5. я обнаружил это, var input = «10;11;15»; var arr = input.split(«;»); alert(arr[1]);