MFC/Qt/등을 기반으로하는 독립 실행 형 GUI가 아닌 브라우저 기반 UI가있는 로컬 응용 프로그램을 만들고 싶습니다. 로컬 컴퓨터에서 웹 서버를 실행하지 않으려면 어떻게 구현할 수 있습니까? 내 애플 리케이션의 역동적 인 부분? 브라우저가 컴퓨터의 로컬 스크립트, 실행 파일 또는 라이브러리를 가리킬 수 있습니까? 로컬 데이터베이스를 직접 사용할 수 있습니까>이 접근 방식에는 어떤 함정이 있습니까?서버가 필요없는 로컬 웹 응용 프로그램을 작성할 수 있습니까?
답변
예, 제한 사항이 있습니다. 브라우저가 열리는 대신 스크립트 원본 코드를 실행하기 때문에 CGI 작업을 수행 할 수 없다는 것이 가장 큰 한계입니다. 여기에는 몇 가지 의미가 있습니다.
- 데이터베이스에 연결할 수 없습니다. 따라서 상태 및 사용자 데이터를 저장하는 것과 같은 공통적 인 작업을 수행하기가 어렵습니다.
- Content-type을 설정할 수 없습니다. 즉, SVG 파일을 제공하거나 XMLHttpRequest에서 XML을 사용하는 것과 같은 멋진 XML 작업을 수행 할 수 없습니다.
- 동적 이미지 (ImageMagick 또는 GD 사용)를 생성 할 수 없습니다. HTML5에서는 캔버스로 할 수 있습니다.
- 파일 시스템을 읽거나 쓸 수 없습니다. 다시 말하지만 이것은 데이터 저장 능력을 제한합니다. 그러나 올바른 사용자 권한으로 수행 할 수 있습니다 (아래에서 자세히 설명).
그러나 해결 방법이 있습니다. HTML5를 사용하면 로컬 저장소에 데이터를 저장할 수 있지만 이전 브라우저에서는 작동하지 않습니다. 데이터를 쿠키에 저장할 수는 있지만 크기 제한이 있습니다. 마지막으로 실제로 파일에 저장할 수 있습니다. 스크립트가이를 수행 할 수 있도록 브라우저 환경 설정을 수정하도록 사용자에게 지시해야하지만 수행 할 수 있습니다. 한 가지 예는 TiddlyWiki입니다. 하나의 HTML 파일에 포함 된 개인 위키입니다. 새로운 콘텐츠를 저장할 때마다 페이지가 수정되어 저장됩니다. 그들이 영감을 얻기 위해 어떻게하는지 볼 수 있습니다.
순수한 HTML 경로를 원할 경우 HTML5를 사용하면 브라우저에서 로컬 데이터베이스를 만들 수 있습니다. 충분한 자바 스크립트 코딩 경험을 통해 HTML 파일을로드하는 대신 JS에서 모든 것을 렌더링하는 전체 사이트를 작성할 수 있습니다. 하나의 파일을로드하고 자바 스크립트 엔진을 사용하여 모든 것을 렌더링합니다.
의미있는 앱이라면 화를 내지 않으면 서 그런 식으로 쓸 수 있습니다.
Windows 사용자는 속임수를 쓸 수 있으며 Active x/vbscript를 사용할 수 있습니다. 그렇다면 일회성 .net 응용 프로그램을 작성하지 않는 것이 좋습니다. 일부 웹 서버 응용 프로그램 구성 요소가 없어도 브라우저는 기존 데이터베이스 엔진과 통신 할 수 없습니다.
이 시나리오에서는 스크립팅 측면에서 자바 스크립트 만 사용할 수 있다고 생각합니다. (또는 자바 애플릿이나 플래시,하지만 당신이 그것을 원하지 않는다고 생각합니다)
QT의 임베디드 웹킷을 살펴 보시기 바랍니다. 이를 사용하여 간단한 QT 앱에 브라우저를 내장하고이를 대부분의 UI에 사용하면 백엔드 용 C++/QT의 힘을 얻을 수 있습니다. QT는 C++ 코드를 Javascript에 직접 연결할 수 있습니다.
QWebFrame class 메서드, 특히 addToJavaScriptWindowObject 메서드 및 Qt WebKit Bridge 메서드를 참조하십시오.
- 1. IE8을 사용하여 단일 탭 웹 응용 프로그램을 작성할 수 있습니까?
- 2. ANSI - C 스크립팅을 사용하여 웹 응용 프로그램을 작성할 수 있습니까?
- 3. PHP를 사용하여 Windows 콘솔 응용 프로그램을 작성할 수 있습니까?
- 4. CA를 설치하는 iOS 응용 프로그램을 작성할 수 있습니까?
- 5. Python으로 작성된 프로그램을 AppleScript로 작성할 수 있습니까?
- 6. .NET에서 Windows CE 용 Silverlight 응용 프로그램을 작성할 수 있습니까?
- 7. Zune HD 용 응용 프로그램을 작성할 수 있습니까?
- 8. C로 자체 파괴 프로그램을 작성할 수 있습니까?
- 9. 서버가 필요없는 Visual Studio 용 소스 컨트롤?
- 10. 안드로이드 용 웹 서버가 있습니까?
- 11. Tomcat에서 웹 응용 프로그램을 실행하기 전에 시작되는 모듈/필터를 작성할 수 있습니까?
- 12. 어떻게 CGI, FastCGI 및 mod_perl을 지원하는 Perl 웹 응용 프로그램을 작성할 수 있습니까?
- 13. Windows 및 Linux 플랫폼 용 Python 웹 응용 프로그램을 동시에 작성할 수 있습니까?
- 14. 루트 권한이 필요없는 traceroute 형 프로그램을 어떻게 실행할 수 있습니까?
- 15. 로컬 호스트에서 내 facebook 응용 프로그램을 실행할 수 있습니까
- 16. .NET 응용 프로그램을 무료로 개발할 수 있습니까?
- 17. 서버가 필요없는 클라이언트 측 (자바 스크립트) 그래프 라이브러리가 있습니까?
- 18. 아이폰에 로컬 웹 서버가 있습니까? 아니면 제 3 자의 웹 서버를 다운로드 할 수 있습니까?
- 19. JQuery/JavaScript를 사용하여 실질적인 클라이언트 측 응용 프로그램을 작성할 수 있습니까?
- 20. 온라인 검색 결과를 얻기 위해 프로그램을 작성할 수 있습니까?
- 21. 로컬 IIS 웹 서버가 SQL Server에 연결할 수 없습니다.
- 22. VS 2008의 콘솔 응용 프로그램을 디버깅하면 웹 서버가 시작됩니까?
- 23. 웹 응용 프로그램을 위해 여러 서버가 어떻게 동기화됩니까?
- 24. 파이썬을 배운 후에도 문제를 해결하거나 응용 프로그램을 작성할 수 없습니다.
- 25. ASP.NET 개발 웹 서버가 시작하지만 개발 웹 서버가 요청에 응답하지 않습니다 때문에 나는 내 응용 프로그램을 호스팅하는 IIS 7에서 가상 응용 프로그램을 만들어
- 26. SyncAdapter를 사용하여 인증이 필요없는 응용 프로그램을 사용하는 방법
- 27. 레일 응용 프로그램 배포 : 웹 서버가 종료됩니다.
- 28. DirectX를 사용하여 응용 프로그램을 개발할 수 있습니까?
- 29. 응용 프로그램 서버가 여러 응용 프로그램을 실행하는 방법은 무엇입니까?
- 30. 누군가 아주 간단한 멀티 스레드 프로그램을 작성할 수 있습니까?
이 결정을 내리는 과정은 무엇입니까? – u07ch
HTTP + CSS는 동적이고 이식 가능한 GUI를 만드는 데 적합합니다. 그러나 서버는 로컬 웹 응용 프로그램의 불편 함을 나타냅니다. 아마도 설치가 해발 고도 등을 필요로합니다. 따라서 그 이유는 가능하면 서버를 피하려고합니다. – paperjam
@paperjam : 서버에는 설치에 루트 권한이 필요하지 않습니다.80 번 포트에서 실행해야하지만 다른 포트에서 서버를 실행할 수 있습니다. 웹 응용 프로그램의 데스크톱 버전을 구현하기 위해이 작업을 수행했습니다. 기본적으로 임의의 포트에서 실행되는 최소한의 펄 서버 (우리의 앱은 perl)와 서버에 연결 가능한 커스텀 웹킷 실행 파일. 우리는 커스텀 브라우저를 구축하기 위해 webkit을 선택했습니다. Windows, Mac 및 Linux의 3 가지를 지원하기 때문입니다. – slebetman