2012-01-12 3 views
4

현재의 Intraweb 애플리케이션은 실제로 동일한 머신의 Interbase Server와 연결되어있는 DataSnap 서버에 연결되는 DataSnap 클라이언트입니다. 그것은 올바르게 작동하지만 아주 느리게 작동하며 인터넷 연결이 끊임없이 필요합니다. 클릭 한 각 단추 또는 트리거 된 모든 이벤트는 브라우저가 웹 서버 (Intraweb)에 연결해야합니다.Delphi + Intraweb을 사용하여 브라우저 저장소 (webSQL/IndexedDB)를 사용하여 HTML5 오프라인 응용 프로그램 (캐시 매니페스트)을 만들 수 있습니까?

Delphi XE2, HTML5 캐시 매니페스트 기능으로 Intraweb을 사용하여 오프라인 웹 응용 프로그램을 만들고 모바일 장치가 오프라인 상태가되면 브라우저 기반 SQL 저장소 (예 : webSQL 또는 IndexedDB)를 로컬 브라우저 저장소로 사용하려고합니다. DataSnap 서버로 다시 초기화하거나 동기화 할 수있는 인터넷 연결이 가능한 경우에만 실제 DataSnap 서버에 연결됩니다.

가능합니까?

내 주요 문제는 intraweb 웹 응용 프로그램에서 웹 페이지의 URL을 가져 오는 것이며 모든 브라우저의 저장소 코드를 템플릿 파일에 넣고 싶지 않습니다.

Intraweb에서 생성 된 JavaScript 코드를 다른 js 파일로 옮기는 것도 매우 지루합니다. 이렇게하면 Intraweb 응용 프로그램 코드와 논리가 손상 될 수 있습니다. 이것에 대한 해결 방법이 있습니까?

답변

4

직접 말한 것처럼 : "클릭 한 각 단추 또는 트리거 된 모든 이벤트는 브라우저가 웹 서버에 연결해야합니다."

이것은 IntraWeb의 디자인으로, 대부분의 코드 논리가 서버 측에서 실행되는 클라이언트 - 서버 응용 프로그램입니다. 애플리케이션에 AJAX 위젯을 추가 할 수는 있지만 IntraWeb은 그 자체로 서버 측 프레임 워크입니다.

전체 HTML5 AJAX 클라이언트 애플리케이션을 독립 실행 형으로 실행하려면 순수한 JavaScript 애플리케이션이 필요합니다. 심지어 Sacha/ExtJS 기반 AJAX 프레임 워크 (예 : ExtPascal 또는 UniGUI) 또는 Morfik은 서버를 실행해야합니다.

순수 HTML5 자바 스크립트 애플리케이션을 만드는 것은 어려운 작업이지만, XML 또는 JSON을 사용하여 JavaScript에서 DataSnap 콘텐츠를 사용할 수 있기 때문에 가능합니다. 시도해 볼 수 있습니다 http://www.appcelerator.com/ 위대한 IDE 및 기본 응용 프로그램으로 실행되는 JavaScript 응용 프로그램을 만드는 플랫폼입니다.

연결이 끊긴 HTML5 응용 프로그램을 위해, 당신은 출시 될 다음 제품에 대한 기다려야 할 수도 있습니다 : 일명

덕분에이 두 프로젝트 덕분에 오브젝트 파스칼로 코딩 할 수 있었고 JavaScript는 파스칼 소스에서 컴파일 된 다음 HTML 로컬 스토리지를 사용합니다. 예를 들어 this article about using storage with Smart/OP4JS을 참조하십시오. (Alpha에서) 테스트를 해본 결과 잘 작동합니다. 서버없이 실행하고 로컬 스토리지를 사용할 수있는 순수한 독립 실행 형 HTML 파일이 있습니다. SQLite3 스토리지가 계획되어 있습니다 (아직 완료되지 않았습니다).

+0

답장을 보내 주셔서 감사합니다. "Smart aka OP4JS"는 문제를 해결할 잠재력이있는 것으로 보이며, DataSnap 연결을 지원한다고 생각하십니까? –

+0

현재 JavaScript가 DataSnap 서버와 연결/통신 할 수있는 API/커넥터가 있습니까? –

+1

델파이 XE2의 AFAIK DataSnap (아마도 이전)은 Smart에서 사용할 수있는 JavaScript 래퍼를 생성 할 수 있습니다. –