dontsovcmc / waterius

Передача показаний воды по Wi-Fi. Watermeter Wi-Fi transmitter.
https://waterius.ru
GNU Lesser General Public License v3.0
563 stars 108 forks source link

Быстрая загрузка страницы подключения #230

Closed dontsovcmc closed 1 year ago

dontsovcmc commented 2 years ago

После нажатия Сохранить происходит попытка подключения ESP к роутеру и вебсервер начинает не на шутку тормозить. Чтобы этого не было и финальная страница грузилась быстрее, можно вызывать подключение только после загрузки фин.страницы.

Кнопка сохранить ведет в /finish (handleFinishPage), а wifisave вызывается в js коде после загрузки finish

void WiFiManager::handleFinishPage() {
    .... аналог handleWifiSave но без connect = true; 
}

void WiFiManager::handleWifiSave() {
  DEBUG_WM(DEBUG_VERBOSE,F("<- HTTP handleWifiSave"));
  handleRequest();
  String page = ""; 

  server->sendHeader(FPSTR(HTTP_HEAD_CORS), FPSTR(HTTP_HEAD_CORS_ALLOW_ALL));
  server->send(200, FPSTR(HTTP_HEAD_CT), page);

  DEBUG_WM(DEBUG_DEV,F("signal ready to connect"));

  connect = true; //signal ready to connect/reset process in processConfigPortal
}

на посл. страницу добавтиь
<script>function send(b,c,d){let a=new XMLHttpRequest;a.open(\"GET\",b),a.timeout=c,a.onreadystatechange=function(b){4===a.readyState&&200===a.status&&d(a.responseText)},a.send()}window.onload=function(){function a(){send(\"/wifisave\",7e3,function(a){clearInterval(b)})}a();var b=setInterval(a,8e3)};</script>
dontsovcmc commented 1 year ago

в 0.11.3 есть