2011-06-14 3 views
2

내가하려는 것은 Google 크롬에서 자바 스크립트와 HTML을 사용하여 서버에있는 SQLite 데이터베이스에 액세스하는 것입니다.(브라우저에서) 순수한 JavaScript로 SQLite (서버에서)를 사용하는 다른 방법은 무엇입니까?

Google Gears를 보았지만 HTML5로 인해 지원이 중단되었습니다. 서버 측 프로그램을 피하고 싶습니다. 작업하는 유일한 응용 프로그램은 브라우저 여야합니다. 가능한가?

+1

매우 위험합니다. – Knu

답변

2

서버에서만 데이터를 필요로한다는 것이 확실하다면 (대부분의 응용 프로그램이 어떻게 구축되는지), 클라이언트, 서버 및 데이터베이스와 같은 3 계층 아키텍처가 필요합니다. 우선, 웹 페이지에서 데이터베이스에 액세스하는 것을 그만 두십시오. 대신 데이터 액세스/조작을 위해 선택한 언어로 서버 측 루틴/기능을 작성하십시오. 이제 문제는 간단한 HTTP 제출과 서버 측의 메커니즘을 사용하여 HTTP 요청을 수신하고 함수를 호출 한 다음 응답을 보내기 위해 수행 할 수있는 웹 페이지에서 서버 측 함수를 호출하는 것으로 줄어 듭니다. 자바 세계에 있다면 서블릿이 이것을 할 수있다. Ruby, PHP, Perl, C#과 같은 다른 플랫폼에서도 비슷한 솔루션이 있습니다.

1

WebSQL이라고하는 HTML5의 하위 표준이 있습니다.이 기능을 사용하면 브라우저에서 호스팅하는 SQL 데이터베이스에 액세스 할 수 있습니다. 표준의 모든 구현은 SQLLite를 백엔드 서비스로 사용했습니다. WebSQL 표준은 다른 SQL 언어가 부족하고 스토리지 시스템이 indexedDB를 선호하기 때문에 사용되지 않습니다.

WebSQL가 여전히 포함하여 시스템의 매우 많은 수에서 지원됩니다 : 크롬, 사파리, 사파리 모바일, 오페라, 안드로이드 브라우저

를 사용하는 방법에 대한 튜토리얼은 여기에 있습니다 : http://www.html5rocks.com/en/tutorials/webdatabase/todo/

색인화 된 외모 미래의 사양이 될 수 있지만 현재 Firefox 및 Chrome에서만 지원됩니다. 이전 튜토리얼 (이전 링크의 동일한 예제 사용) http://www.html5rocks.com/en/tutorials/indexeddb/todo/에서 IndexedDB 사용 방법을 확인할 수 있습니다.

+1

이들은 클라이언트 측 저장소의 API로 표시됩니다. 즉, 데이터는 서버가 아니라 클라이언트의 컴퓨터에 저장됩니다. 한 곳에서 IndexedDB를 사용하여 서버에 데이터를 보관할 수 있습니까? – Moshanator

+0

사과 - 나는 당신이 서버를 가지고 그것을 클라이언트에 넣고 싶다는 것을 읽었습니다. – Kinlan

1

데이터가 서버에있는 경우 서버 측 프로그램에서만 데이터를 쓸 수 있습니다.

브라우저의 JavaScript가 SQL 데이터베이스와 직접 상호 작용할 수있는 방법이 있지만 서버가 아닌 브라우저에 저장된 데이터베이스로 제한됩니다 (네트워크에 액세스 할 수있는 소켓 및 서버 측 데이터베이스와 관련된 정말 미친 물건) (SQLite는 그렇지 않습니다)).

0

내가 아는 한, SQLite에는 HTTP 인터페이스가 내장되어 있지 않다. 따라서 자바 스크립트에서 HTTP 메시지 (AJAX 요청이라고도 함)를 받아들이고 SQLite와 통신하고 JavaScript가 사용할 수있는 형식 (예 : JSON)으로 데이터를 반환하는 서버가 필요합니다.

세계의 거의 모든 웹 프레임 워크가이 작업을 수행하므로 SQLite를 데이터베이스 백엔드로 지원하는 언어로 이해해야합니다.

관련 문제