임베디드 웹 서버에서 동적 콘텐츠 표시
-
09-12-2019 - |
문제
나는 웹 서버의 슬림 다운 버전을 실행하는 임베디드 장치를 가지고있다.현재 정적 페이지를 표시 할 수 있습니다.다음은 정적 페이지를 표시하는 방법의 예입니다:
char *text="HTTP/1.0 200 OK\r\nContent-Type: text/html\r\n\r\n"
"<html><body>Hello World!</body></html>";
IPWrite(socket, (uint8*)text, (int)strlen(text));
IPClose(socket);
내가하고 싶은 것은 동적 콘텐츠를 표시하는 것입니다.센서에서 읽기.내가 금까 생각는 로 매 번 새로 고는 것니다
<meta http-equiv="refresh" content="600">
그리고()를 사용하여 센서 판독값을 본문 응답에 대한 변수.
페이지를 지속적으로 새로 고치지 않고도 이 작업을 수행할 수 있는 방법이 있습니까?
해결책
다음(내 경험에서)접근 방식을 시도 할 수 있습니다:-정적 및 동적 콘텐츠를 나누고 동적 콘텐츠를 최소화합니다.
- 의사 인터페이스를 만듭니다.2018 년 당신의 _베딩된 _사이트/센서.2015 년 다음 응답의 생성에 바인딩되어야 합니다:
sprintf(cgi_str, "HTTP/1.0 200 OK\r\nContent-Type: text\r\nContent-Length: %d\r\n\r\nvalue=%02d", 8, sensor_value);
또는(그것은 당신의 디자인 고려 사항에 관한 것입니다):
sprintf(cgi_str, "HTTP/1.0 200 OK\r\nContent-Type: text\r\nContent-Length: %d\r\n\r\n%02d", 2, sensor_value);
- 간단한 자바 스크립트 또는 작은 자바 애플릿을 사용하여 주기적으로 요청하십시오 당신의 _베딩된 _사이트/센서.2015 년.자바스크립트는 일반적으로 브라우저에 의존하고 꺼질 수 있습니다.자바 애플릿은 또한 추가적인 정적 콘텐츠가 필요합니다.하지만 데이터를 제시하고 간단한 읽기를 확장하고 더 많은 기능을 보여주는 특별한 자유가 있습니다.
이 대신 전체 페이지를 다시로드의 매우 효율적인 방법으로 통신을 구성 할 수 있습니다:코드의 일부-사용자 프런트 엔드-는 브라우저에서 실행되고 다른 부분-백 엔드-는 임베디드 장치에서 실행됩니다.
다른 팁
제발 아니 이를 제공하기 위해 자바 애플릿을 사용합니다.
아약스와 자바 스크립트 클라이언트 측은 임베디드 애플릿의 불결함없이 이런 종류의 일을 쉽게 만듭니다.
"불결함"은:
- 자바 보안 문제
- 자바 런타임 불일치
- 페이로드 크기 증가(애플릿은 자바스크립트 코드 조각에 비해 큼)
- 속도 문제(애플릿 시작 속도가 느릴 수 있음)
- 웹 페이지는 유지하기가 더 어렵습니다.
- 그리고 그 다음으로
요약하자면:그것은 2013 년,그냥 자바 스크립트와 아약스를 사용합니다.