Уменьшенный jquery javascript может храниться в ESP и обслуживаться модулем, когда браузер запрашивает его.
Один простой способ сделать это - использовать SPI Fla sh Файловая система для обслуживания HTML, а также JQuery javascript.
Это означает создание index.html
в подкаталоге data
в скетче . Добавьте HTML в исходный эскиз в файл. Также измените исходный код сценария в этом файле на относительный путь:
<script src="jquery.min.js"></script>
Затем загрузите jquery.min.js
и скопируйте его также в подкаталог data
.
Пример кода at https://tttapa.github.io/ESP8266/Chap11%20-%20SPIFFS.html можно использовать в качестве отправной точки для остальной части кода. Основные части этого включают инициализацию SPIFFS и настройку обработчика для запроса файла:
SPIFFS.begin();
server.onNotFound([]() {
if (!handleFileRead(server.uri()))
server.send(404, "text/plain", "404: Not Found");
});
// retain the save endpoint
server.on("/save", handleSave);
server.begin();
Затем реализуйте обработчик файла и его обработчик типа содержимого:
String getContentType(String filename)
{
if (filename.endsWith(".html")) return "text/html";
else if (filename.endsWith(".css")) return "text/css";
else if (filename.endsWith(".js")) return "application/javascript";
else if (filename.endsWith(".ico")) return "image/x-icon";
return "text/plain";
}
bool handleFileRead(String path) {
Serial.println("handleFileRead: " + path);
if (path.endsWith("/"))
{
path += "index.html";
}
String contentType = getContentType(path);
if (SPIFFS.exists(path))
{
File file = SPIFFS.open(path, "r");
size_t sent = server.streamFile(file, contentType);
file.close();
return true;
}
Serial.println("\tFile Not Found");
return false;
}
Альтернативный подход: Удалите зависимость JQuery
Альтернативный подход - переписать javascript, чтобы JQuery не требовалось.
Это включает регистрацию обработчика onclick на кнопке ( https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Event_handlers), получение значения из поля ввода ({ ссылка }) и отправка запроса GET (https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/send)