@Олег Поляков, Мне сложно с этим разобраться, можно чуть подробнее, как это в конструкторе будет выглядеть и в коде. Буду признателен
String cl;
BUILD_BEGIN(cl);
add.THEME(GP_LIGHT);
add.PAGE_BEGIN();
add.PAGE_BLOCK_BEGIN();
cl += F("<script type=\"application/javascript\" language=\"javascript\"");
cl += F("setTimeout(function(){location.reload();},1000);");
cl += F("</script>");
add.PAGE_BLOCK_END();
add.PAGE_END();
BUILD_END();
Вставьте в GiverPortal.h@Олег Поляков, Ладно, спасибо за помощь, я понял что нифига не понял. Буду ждать обновление gyverportal, может что для меня нужное появится.
void UPDATE(const char* value) {
*_gp_sptr += F("<meta http-equiv=\"Refresh" );
*_gp_sptr += "\" content=\"";
*_gp_sptr += value;
*_gp_sptr += F("\">\n");
}
if (en_start) {
if (fl_b) {
fl_b = 0;
portal.attachBuild(build);
portal.start();
}
}
else fl_b = 1;
portal.tick();
if(theme_dark) add.THEME(GP_DARK);
else add.THEME(GP_LIGHT);
if (portal.form())
{
if (portal.form("/update"))
{
if (theme_dark == LOW) theme_dark = HIGH;
else theme_dark = LOW;
}
}
// вернёт true, если был клик по указанному элементу (кнопка, чекбокс, свитч, слайдер, селектор)
bool click(const char* name) {
return _clickF ? server.argName(0).equals(name) : 0;
}
void AJAX_UPDATE(const char* list, int prd = 1000) { // Код страницы, отправка запросов
*_gp_sptr += F("<script>setInterval(function(){\n");
*_gp_sptr += "var elms=[";
char buf[strlen(list) + 1];
strcpy(buf, list);
char* str = buf;
splitList(NULL);
while ((str = splitList(buf)) != NULL) {
*_gp_sptr += "'";
if (str[0] == ' ') *_gp_sptr += (str + 1);
else *_gp_sptr += str;
*_gp_sptr += "',";
}
*_gp_sptr += F("];\n"
"elms.forEach(function(elm){\n"
"var xhttp=new XMLHttpRequest();\n"
"xhttp.onreadystatechange=function(){\n"
"if(this.readyState==4&&this.status==200){\n"
"var resp=this.responseText;\n"
"var item=document.getElementById(elm);\n"
"if(elm == \"ResetWeb\" && resp == 1){location.reload();}\n"
"else{"
"if (elm == \"ResetWeb\" && resp == 0){}else{"
"if(item.type==\"checkbox\"||item.type==\"radio\")item.checked=Number(resp);\n"
"else if(item.type==undefined)item.innerHTML=resp;\n"
"else item.value=resp;}\n"
"}}};xhttp.open(\"GET\",\"GP_update\"+elm,true);xhttp.send();});},");
*_gp_sptr += prd;
*_gp_sptr += F(");</script>\n");
}
add.AJAX_UPDATE(PSTR("var1, var2, var3, var4, var5, var6, ResetWeb"),1000);
if (portal.update()){
if (portal.update("ResetWeb")){
if(flag==true){
portal.answer(String(1)); // перезагрузит страницу
flag = false; // сброс флага
} else{
portal.answer(String(0)); //не перезагружать страницу
}
}
if (portal.update("var1")){}
}